Newer
Older
module Main ( main ) where
import Data.ByteString (fromStrict)
import Data.Text.Encoding (encodeUtf8)
import Dhall (auto, embed, inject, input)
import Dhall.Pretty (layout, prettyExpr)
import Prettyprinter.Render.Text (renderStrict)
import Test.Tasty (TestTree, defaultMain, testGroup)
import Test.Tasty.Golden (goldenVsString)
main :: IO ()
main = defaultMain tests
tests :: TestTree
tests = testGroup "Tests" [ samplePackageSet, modifiedPackageSet ]
samplePackageSet = goldenVsString "sample package set" "./test/data/sample-package-set/output.golden" $ do
(x :: PackageSet) <- input auto "./test/data/sample-package-set/input.dhall"
let doc = prettyExpr $ embed inject x
pure $ fromStrict $ encodeUtf8 $ renderStrict (layout doc)
modifiedPackageSet :: TestTree
modifiedPackageSet = goldenVsString "modified package set" "./test/data/modified-package-set/output.golden" $ do
(x :: PackageSet) <- input auto "./test/data/modified-package-set/input.dhall"
let doc = prettyExpr $ embed inject x
pure $ fromStrict $ encodeUtf8 $ renderStrict (layout doc)