packages feed

mdoc-0.1.0.0: test/Mdoc/Parse/MacroArgSpec.hs

-- |
--
-- Module      : Mdoc.Parse.MacroArgSpec
-- Copyright   : (c) 2026 Patrick Brisbin
-- License     : AGPL-3
-- Maintainer  : pbrisbin@gmail.com
-- Stability   : experimental
-- Portability : POSIX
module Mdoc.Parse.MacroArgSpec
  ( spec
  ) where

import Mdoc.Prelude

import Data.Time (fromGregorian)
import Mdoc.Interpolation
import Mdoc.MacroArg
import Mdoc.Parse
import Mdoc.Parse.MacroArg
import Mdoc.Test.Parse
import Test.Hspec

spec :: Spec
spec = do
  describe "parseMacroArg" $ do
    it "parses the mdoc date macro" $ do
      parseTest (parseMacroArg <* eol <* eof) ["$Mdocdate$"] $ Mdocdate Nothing

    it "parses the mdoc date macro with explicit date" $ do
      parseTest
        (parseMacroArg <* eol <* eof)
        ["$Mdocdate: October 1 2020 $"]
        $ Mdocdate
        $ Just
        $ fromGregorian 2020 10 1

    it "parses interpolated arguments" $ do
      parseTest (parseMacroArg <* eol <* eof) ["{{docTitle}}"]
        $ InterpolatedArg DocTitle