dojang-0.2.0: test/Dojang/Syntax/Manifest/WriterSpec.hs
module Dojang.Syntax.Manifest.WriterSpec (spec) where
import Data.Text (unpack)
import Test.Hspec (Spec, specify)
import Test.Hspec.Hedgehog (annotate, annotateShow, forAll, hedgehog, (===))
import Dojang.Syntax.Manifest.Parser (readManifest)
import Dojang.Syntax.Manifest.Writer (writeManifest)
import Dojang.Types.Gen as Gen (manifest)
spec :: Spec
spec = do
specify "writeManifest" $ hedgehog $ do
manifest' <- forAll Gen.manifest
let toml = writeManifest manifest'
annotate $ unpack toml
let Right (parsed, _) = readManifest toml
annotateShow parsed
parsed === manifest'