packages feed

mdoc-0.1.0.0: test/Mdoc/UpdateMdocdateSpec.hs

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

import Mdoc.Prelude

import Data.Time (fromGregorian)
import Mdoc
import Mdoc.MacroArg
import Mdoc.MacroName
import Mdoc.MdocLine
import Mdoc.UpdateMdocdate
import Test.Hspec

spec :: Spec
spec = do
  describe "updateMdocdateTo" $ do
    it "updates all Dd lines in an Mdoc" $ do
      let
        d1 = fromGregorian 2023 10 5
        d2 = fromGregorian 2020 1 10
        mdoc =
          Mdoc
            { lines =
                [ MacroLine Dd [Mdocdate Nothing]
                , MacroLine Dd [Mdocdate (Just d1)]
                ]
            }

      updateMdocdateTo d2 mdoc
        `shouldBe` Mdoc
          { lines =
              [ MacroLine Dd [Mdocdate (Just d2)]
              , MacroLine Dd [Mdocdate (Just d2)]
              ]
          }