module Morley.Test.Util
( failedProp
, succeededProp
, qcIsLeft
, qcIsRight
) where
import Test.QuickCheck.Property (Property, Result(..), failed, property)
failedProp :: Text -> Property
failedProp r = property $ failed { reason = toString r }
succeededProp :: Property
succeededProp = property True
qcIsLeft :: Show b => Either a b -> Property
qcIsLeft (Left _) = property True
qcIsLeft (Right x) = failedProp $ "expected Left, got Right (" <> show x <> ")"
qcIsRight :: Show a => Either a b -> Property
qcIsRight (Right _) = property True
qcIsRight (Left x) = failedProp $ "expected Right, got Left (" <> show x <> ")"