packages feed

mmark-ext-0.2.1.3: tests/Text/MMark/Extension/TableOfContentsSpec.hs

{-# LANGUAGE OverloadedStrings #-}

module Text.MMark.Extension.TableOfContentsSpec (spec) where

import qualified Data.Text.IO as TIO
import qualified Data.Text.Lazy as TL
import qualified Lucid as L
import Test.Hspec
import qualified Text.MMark as MMark
import Text.MMark.Extension.TableOfContents

spec :: Spec
spec =
  describe "toc" $
    it "works" $ do
      input <- TIO.readFile "data/toc.md"
      expected <- TIO.readFile "data/toc.html"
      let Right doc = MMark.parse "" input
          headings = MMark.runScanner doc (tocScanner (> 1))
          actual =
            TL.toStrict
              . L.renderText
              . MMark.render
              . MMark.useExtension (toc "toc" headings)
              $ doc
      actual `shouldBe` expected