mmark-ext-0.1.0.0: tests/Text/MMark/Extension/TestUtils.hs
module Text.MMark.Extension.TestUtils
( withExt )
where
import Data.Text (Text)
import Test.Hspec
import qualified Data.Text.Lazy as TL
import qualified Lucid as L
import qualified Text.MMark as MMark
-- | Feed input into MMark parser, apply an extension, render the parsed
-- document and demand that it matches the given example.
withExt
:: MMark.Extension -- ^ MMark extension to use
-> Text -- ^ Input for the parser
-> Text -- ^ Expected output of the render
-> Expectation
withExt ext input expected = do
let Right doc = MMark.parse "" input
actual = TL.toStrict
. L.renderText
. MMark.render
. MMark.useExtension ext
$ doc
actual `shouldBe` expected