You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.7 KiB
72 lines
1.7 KiB
const expect = require("chai").expect;
|
|
const Compile = require("../lib/compileASTtoMarkdown");
|
|
|
|
describe("Compiling AST to Markdown", function () {
|
|
it("sample ast - 1", function () {
|
|
const input = [{ type: "bold", children: ["bold"] }];
|
|
expect(Compile(input)).to.equal("**bold**");
|
|
});
|
|
|
|
it("sample ast - 2", function () {
|
|
const input = [
|
|
{ type: "bold", children: ["my"] },
|
|
{ type: "text", children: ["simple"] },
|
|
{ type: "italics", children: ["AST"] },
|
|
];
|
|
expect(Compile(input)).to.equal("**my**simple_AST_");
|
|
});
|
|
|
|
it("sentence ast", function () {
|
|
const input = [
|
|
{ type: "bold", children: ["Arunkumar"] },
|
|
{ type: "text", children: [" is the "] },
|
|
{ type: "underline", children: ["Best Boy"] },
|
|
{ type: "text", children: [" not the "] },
|
|
{
|
|
type: "italics",
|
|
children: [{ type: "strikethrough", children: ["Worst Boy"] }],
|
|
},
|
|
{ type: "text", children: ["."] },
|
|
];
|
|
expect(Compile(input)).to.equal(
|
|
"**Arunkumar** is the ==Best Boy== not the _~~Worst Boy~~_.",
|
|
);
|
|
});
|
|
|
|
it("link ast", function () {
|
|
const input = [
|
|
{ type: "url", children: ["The Feathers"], url: "feathers.studio" },
|
|
];
|
|
expect(Compile(input)).to.equal("[The Feathers](feathers.studio)");
|
|
});
|
|
|
|
it("Nested ast", function () {
|
|
const input = [
|
|
{
|
|
type: "bold",
|
|
children: [
|
|
"Bold",
|
|
{
|
|
type: "italics",
|
|
children: [
|
|
"Italics",
|
|
{
|
|
type: "strikethrough",
|
|
children: [
|
|
"Strikethrough",
|
|
{ type: "underline", children: ["Underline"] },
|
|
"Strikethrough",
|
|
],
|
|
},
|
|
"Italics",
|
|
],
|
|
},
|
|
"Bold",
|
|
],
|
|
},
|
|
];
|
|
expect(Compile(input)).to.equal(
|
|
"**Bold_Italics~~Strikethrough==Underline==Strikethrough~~Italics_Bold**",
|
|
);
|
|
});
|
|
});
|
|
|