tasty-hspec-1.1.7: src/Test/Tasty/Hspec/Compat.hs
{-# LANGUAGE CPP #-}
module Test.Tasty.Hspec.Compat
( itemExample,
itemIsFocused,
focus,
optionSetToQuickCheckArgs,
pattern Leaf,
pattern Node,
pattern NodeWithCleanup,
)
where
import qualified Test.Hspec as Hspec
import qualified Test.Hspec.Core.Spec as Hspec
import qualified Test.QuickCheck as QuickCheck
import qualified Test.Tasty.Options as Tasty
import qualified Test.Tasty.QuickCheck as Tasty.QuickCheck
{-# COMPLETE Leaf, Node, NodeWithCleanup #-}
pattern Leaf :: a -> Hspec.Tree c a
pattern Leaf item <-
Hspec.Leaf item
pattern Node :: String -> [Hspec.Tree c a] -> Hspec.Tree c a
pattern Node name trees <-
Hspec.Node name trees
pattern NodeWithCleanup :: c -> [Hspec.Tree c a] -> Hspec.Tree c a
pattern NodeWithCleanup cleanup trees <-
#if MIN_VERSION_hspec(2,8,0)
Hspec.NodeWithCleanup _loc cleanup trees
#else
Hspec.NodeWithCleanup cleanup trees
#endif
itemExample :: Hspec.Item a -> Hspec.Params -> (Hspec.ActionWith a -> IO ()) -> Hspec.ProgressCallback -> IO Hspec.Result
itemExample item =
case item of
#if MIN_VERSION_hspec(2,6,0)
Hspec.Item _ _ _ _ example -> example
#else
Hspec.Item _ _ _ example -> example
#endif
itemIsFocused :: Hspec.Item a -> Bool
itemIsFocused =
#if MIN_VERSION_hspec(2,6,0)
Hspec.itemIsFocused
#else
const True
#endif
focus :: Hspec.Spec -> Hspec.Spec
focus =
#if MIN_VERSION_hspec(2,6,0)
Hspec.focus
#else
id
#endif
optionSetToQuickCheckArgs :: Tasty.OptionSet -> IO QuickCheck.Args
optionSetToQuickCheckArgs opts =
#if MIN_VERSION_tasty_quickcheck(0,9,1)
snd <$> Tasty.QuickCheck.optionSetToArgs opts
#else
pure
QuickCheck.stdArgs
{ QuickCheck.chatty = False,
QuickCheck.maxDiscardRatio = max_ratio,
QuickCheck.maxSize = max_size,
QuickCheck.maxSuccess = num_tests,
QuickCheck.replay = replay
}
where
Tasty.QuickCheck.QuickCheckTests num_tests = T.lookupOption opts
Tasty.QuickCheck.QuickCheckReplay replay = T.lookupOption opts
Tasty.QuickCheck.QuickCheckMaxSize max_size = T.lookupOption opts
Tasty.QuickCheck.QuickCheckMaxRatio max_ratio = T.lookupOption opts
#endif