mdoc-0.1.0.0: test/Mdoc/Parse/TroffMacroSpec.hs
-- |
--
-- Module : Mdoc.Parse.TroffMacroSpec
-- Copyright : (c) 2026 Patrick Brisbin
-- License : AGPL-3
-- Maintainer : pbrisbin@gmail.com
-- Stability : experimental
-- Portability : POSIX
module Mdoc.Parse.TroffMacroSpec
( spec
) where
import Mdoc.Prelude
import Mdoc.Parse
import Mdoc.Parse.TroffMacro
import Mdoc.Test.Parse
import Mdoc.TroffMacro
import Test.Hspec
spec :: Spec
spec = do
describe "parseTroffMacro" $ do
context "Troff .de macros" $ do
it "handles implicit end, and calling macros" $ do
parseTest
(sepEndBy parseTroffMacro eol)
[ ".de mymacro"
, ".."
, ".mymacro"
]
[ TroffMacroDefine "mymacro" Nothing
, TroffMacroEnd ".."
, TroffMacroCall "mymacro" []
]
it "handles explicit end, and calling macros" $ do
parseTest
(sepEndBy parseTroffMacro eol)
[ ".de mymacro endmacro"
, ".endmacro"
]
[ TroffMacroDefine "mymacro" (Just "endmacro")
, TroffMacroEnd "endmacro"
]
it "handles macros with arguments" $ do
parseTest
(sepEndBy parseTroffMacro eol)
[ ".de mymacro"
, ".."
, ".mymacro foo"
]
[ TroffMacroDefine "mymacro" Nothing
, TroffMacroEnd ".."
, TroffMacroCall "mymacro" ["foo"]
]