From b2329cc3946674cf827481dd3f45f75cb998705d Mon Sep 17 00:00:00 2001 From: Omikhleia Date: Sun, 14 Aug 2022 00:02:26 +0200 Subject: [PATCH] test(inputter): Initiate markdown inputter busted testing --- inputters/markdown_spec.lua | 61 +++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 inputters/markdown_spec.lua diff --git a/inputters/markdown_spec.lua b/inputters/markdown_spec.lua new file mode 100644 index 000000000..c97e8d554 --- /dev/null +++ b/inputters/markdown_spec.lua @@ -0,0 +1,61 @@ +SILE = require("core.sile") +SILE.backend = "dummy" +SILE.init() +SILE.utilities.error = error + +local astToSil = require("core.ast").astToSil + +describe("#Markdown #inputter", function () + local inputter = SILE.inputters.markdown() + + describe("should parse", function () + it("header", function() + local tree = inputter:parse("# Header\n") + local sil = astToSil(tree) + assert.is.equal([[\begin[class="markdown"]{document} +\markdown:internal:header[level="1"]{Header} +\end{document} +]], sil) + end) + it("header with attributes", function() + local tree = inputter:parse("## Header {#hash - lang=en}\n") + local sil = astToSil(tree) + assert.is.equal([[\begin[class="markdown"]{document} +\markdown:internal:header[class="unnumbered", id="hash", lang="en", level="2"]{Header} +\end{document} +]], sil) + end) + it("basic inline markup", function() + local tree = inputter:parse("normal **bold** _italic_ `code`") + local sil = astToSil(tree) + assert.is.equal([[\begin[class="markdown"]{document} +normal \strong{bold} \em{italic} \code{code} +\end{document} +]], sil) + end) + it("horizontal rule", function() + local tree = inputter:parse("---\n\n") + local sil = astToSil(tree) + assert.is.equal([[\begin[class="markdown"]{document} +\fullrule{} +\end{document} +]], sil) + end) + end) + it("span in paragraph", function() + local tree = inputter:parse("[underlined]{.underline}\n\n") + local sil = astToSil(tree) + assert.is.equal([[\begin[class="markdown"]{document} +\markdown:internal:paragraph{\markdown:internal:span[class="underline"]{underlined}} +\end{document} +]], sil) + end) + it("bullet list", function() + local tree = inputter:parse("- Item1\n- Item2\n") + local sil = astToSil(tree) + assert.is.equal([[\begin[class="markdown"]{document} +\itemize{\item{Item1}\item{Item2}} +\end{document} +]], sil) + end) +end)