57 lines
1.3 KiB
Haskell
57 lines
1.3 KiB
Haskell
module FoundationSpec where
|
|
|
|
import TestImport
|
|
|
|
import ModelSpec ()
|
|
|
|
import qualified Data.CryptoID as CID
|
|
import Yesod.EmbeddedStatic
|
|
|
|
instance Arbitrary (Route Auth) where
|
|
arbitrary = oneof
|
|
[ return CheckR
|
|
, return LoginR
|
|
, return LogoutR
|
|
, PluginR <$> arbitrary <*> arbitrary
|
|
]
|
|
|
|
instance Arbitrary (Route EmbeddedStatic) where
|
|
arbitrary = embeddedResourceR <$> arbitrary <*> arbitrary
|
|
|
|
instance Arbitrary CourseR where
|
|
arbitrary = genericArbitrary
|
|
shrink = genericShrink
|
|
|
|
instance Arbitrary SheetR where
|
|
arbitrary = genericArbitrary
|
|
shrink = genericShrink
|
|
|
|
instance Arbitrary SubmissionR where
|
|
arbitrary = genericArbitrary
|
|
shrink = genericShrink
|
|
|
|
instance Arbitrary MaterialR where
|
|
arbitrary = genericArbitrary
|
|
shrink = genericShrink
|
|
|
|
instance Arbitrary TutorialR where
|
|
arbitrary = genericArbitrary
|
|
shrink = genericShrink
|
|
|
|
instance Arbitrary ExamR where
|
|
arbitrary = genericArbitrary
|
|
shrink = genericShrink
|
|
|
|
instance Arbitrary (Route UniWorX) where
|
|
arbitrary = genericArbitrary
|
|
shrink = genericShrink
|
|
|
|
instance Arbitrary a => Arbitrary (CID.CryptoID ns a) where
|
|
arbitrary = CID.CryptoID <$> arbitrary
|
|
|
|
spec :: Spec
|
|
spec = do
|
|
parallel $
|
|
lawsCheckHspec (Proxy @(Route UniWorX))
|
|
[ eqLaws, hashableLaws, jsonLaws, jsonKeyLaws, pathPieceLaws ]
|