publish-2.1.3: tests/CompareFragments.hs
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
module CompareFragments
( checkByComparingFragments,
)
where
import Core.Text
import qualified Data.Text.IO as T
import FormatDocument (markdownToPandoc)
import PandocToMarkdown (pandocToMarkdown)
import Test.Hspec hiding (context)
fragments :: [(String, FilePath)]
fragments =
[ ("headings", "tests/fragments/Headings.markdown"),
("paragraphs", "tests/fragments/Paragraphs.markdown"),
("code blocks", "tests/fragments/CodeBlocks.markdown"),
("div blocks", "tests/fragments/DivBlocks.markdown"),
("LaTeX blocks", "tests/fragments/LatexBlocks.markdown"),
("HTML blocks", "tests/fragments/HtmlBlocks.markdown"),
("poem passage", "tests/fragments/Poetry.markdown"),
("blockquotes", "tests/fragments/Blockquotes.markdown"),
("bullet list", "tests/fragments/BulletList.markdown"),
("ordered list", "tests/fragments/OrderedList.markdown"),
("definition list", "tests/fragments/DefinitionList.markdown"),
("multiline table", "tests/fragments/MultilineTable.markdown"),
("weird inlines", "tests/fragments/WeirdInlines.markdown")
]
checkByComparingFragments :: Spec
checkByComparingFragments =
describe "Compare fragments" $ do
sequence_ (map compareFragment fragments)
compareFragment :: (String, FilePath) -> SpecWith ()
compareFragment (label, file) =
it ("Formats " ++ label ++ " correctly") $ do
original <- T.readFile file
doc <- markdownToPandoc original
let text = pandocToMarkdown doc
fromRope text `shouldBe` original