import MarkdownIt from "markdown-it";
import { describe, expect, it } from "vitest";
import { hint } from "../../src/node/markdown-it/hint.js";
describe("hint", () => {
describe("with options", () => {
const markdownIt = MarkdownIt({ linkify: true }).use(hint, {
// eslint-disable-next-line @typescript-eslint/naming-convention
"/": {
info: "Info",
note: "Note",
tip: "Tips",
warning: "Warning",
caution: "Caution",
details: "Details",
},
});
it("should generate tip block", () => {
expect(markdownIt.render("::: tip\n*content*\n:::\n")).toBe(
'
\n',
);
expect(markdownIt.render("::: tip Title\n*content*\n:::\n")).toBe(
'\n',
);
});
it("should generate warning block", () => {
expect(markdownIt.render("::: warning\n*content*\n:::\n")).toBe(
'\n',
);
expect(markdownIt.render("::: warning Title\n*content*\n:::\n")).toBe(
'\n',
);
});
it("should generate danger block", () => {
expect(markdownIt.render("::: caution\n*content*\n:::\n")).toBe(
'\n',
);
expect(markdownIt.render("::: caution Title\n*content*\n:::\n")).toBe(
'\n',
);
});
it("should generate info block", () => {
expect(markdownIt.render("::: info\n*content*\n:::\n")).toBe(
'\n',
);
expect(markdownIt.render("::: info Title\n*content*\n:::\n")).toBe(
'\n',
);
});
it("should generate note block", () => {
expect(markdownIt.render("::: note\n*content*\n:::\n")).toBe(
'\n',
);
expect(markdownIt.render("::: note Title\n*content*\n:::\n")).toBe(
'\n',
);
});
it("should generate details block", () => {
expect(markdownIt.render("::: details\n*content*\n:::\n")).toBe(
'Details
\ncontent
\n \n',
);
});
});
describe("without options", () => {
const markdownIt = MarkdownIt({ linkify: true }).use(hint);
it("should generate tip block", () => {
expect(markdownIt.render("::: tip\n*content*\n:::\n")).toBe(
'\n',
);
expect(markdownIt.render("::: tip Title\n*content*\n:::\n")).toBe(
'\n',
);
});
it("should generate warning block", () => {
expect(markdownIt.render("::: warning\n*content*\n:::\n")).toBe(
'\n',
);
expect(markdownIt.render("::: warning Title\n*content*\n:::\n")).toBe(
'\n',
);
});
it("should generate caution block", () => {
expect(markdownIt.render("::: caution\n*content*\n:::\n")).toBe(
'\n',
);
expect(markdownIt.render("::: caution Title\n*content*\n:::\n")).toBe(
'\n',
);
});
it("should generate info block", () => {
expect(markdownIt.render("::: info\n*content*\n:::\n")).toBe(
'\n',
);
expect(markdownIt.render("::: info Title\n*content*\n:::\n")).toBe(
'\n',
);
});
it("should generate note block", () => {
expect(markdownIt.render("::: note\n*content*\n:::\n")).toBe(
'\n',
);
expect(markdownIt.render("::: note Title\n*content*\n:::\n")).toBe(
'\n',
);
});
it("should generate details block without options", () => {
expect(markdownIt.render("::: details\n*content*\n:::\n")).toBe(
'Details
\ncontent
\n \n',
);
});
});
});