fradrive/test/PandocSpec.hs
2022-07-14 19:09:30 +02:00

42 lines
1.3 KiB
Haskell

module PandocSpec where
import TestImport
import Utils.Print
import qualified Data.Map.Lazy as Map
import Text.Pandoc
import Text.Pandoc.Arbitrary ()
-- For Lens Check _Meta required:
--instance CoArbitrary Inline
--instance CoArbitrary MetaValue
--instance CoArbitrary Meta
--instance Function Inline
--instance Function MetaValue
--instance Function Meta
spec :: Spec
spec = -- do
describe "addMeta" $ do
it "should overwrite existing settings" $ do
(metaOverwrite, pd) <- generate arbitrary
let (Pandoc newMeta _) = addMeta metaOverwrite pd
Map.toList (unMeta newMeta) `shouldContain` Map.toList (unMeta metaOverwrite)
it "should preserve untouched settings" $ do
(metaOverwrite, pd) <- generate arbitrary
let
(Pandoc keptMeta _) = pd
(Pandoc newMeta _) = addMeta metaOverwrite pd
Map.toList (unMeta newMeta) `shouldContain` Map.toList (unMeta keptMeta `Map.difference` unMeta metaOverwrite)
it "should preserve document block" $ do
(metaOverwrite, pd) <- generate arbitrary
let
(Pandoc _ oldBlocks) = pd
(Pandoc _ newBlocks) = addMeta metaOverwrite pd
oldBlocks `shouldBe` newBlocks
-- describe "_Meta" . it "is a lens" . property $ isLens _Meta