packages feed

summoner-1.4.0.0: test/Spec.hs

module Main where

import Hedgehog (Group (..), checkParallel)
import Test.Hspec (hspec)

import Test.CustomPrelude (customPreludeSpec)
import Test.DecisionSpec (decisionMonoidMempty, decisionSemigroupAssoc)
import Test.Golden (goldenSpec)
import Test.QuestionSpec (yesNoPromptSpec)
import Test.Script (scriptSpec)
import Test.Show (showCommandSpec)
import Test.TomlSpec (tomlProp)


main :: IO ()
main = do
    hspec $ do
        yesNoPromptSpec
        scriptSpec
        showCommandSpec
        goldenSpec
        customPreludeSpec
    ifM (checkParallel hedgehogTests) exitSuccess exitFailure

hedgehogTests :: Group
hedgehogTests = Group "Roundtrip properties"
    [ decisionSemigroupAssoc `named` "Decision Semigroup:Assoc"
    , decisionMonoidMempty   `named` "Decision Monoid:Mempty"
    , tomlProp               `named` "decode . encode == id"
    ]
  where
    named :: a -> b -> (b, a)
    named = flip (,)