Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
| {-# LANGUAGE AllowAmbiguousTypes #-}
 | |
| --------------------------------------------------------------------------------
 | |
| module Test.Prelude
 | |
|   ( module Xanthous.Prelude
 | |
|   , module Test.Tasty
 | |
|   , module Test.Tasty.HUnit
 | |
|   , module Test.Tasty.QuickCheck
 | |
|   , module Test.Tasty.Ingredients.Rerun
 | |
|   , module Test.QuickCheck.Classes
 | |
|   , testBatch
 | |
|   , jsonRoundTrip
 | |
|   ) where
 | |
| --------------------------------------------------------------------------------
 | |
| import           Xanthous.Prelude hiding (assert, elements)
 | |
| --------------------------------------------------------------------------------
 | |
| import           Test.Tasty
 | |
| import           Test.Tasty.QuickCheck
 | |
| import           Test.Tasty.HUnit
 | |
| import           Test.Tasty.Ingredients.Rerun
 | |
| import           Test.QuickCheck.Classes
 | |
| import           Test.QuickCheck.Checkers (TestBatch, EqProp ((=-=)))
 | |
| import           Test.QuickCheck.Instances.ByteString ()
 | |
| --------------------------------------------------------------------------------
 | |
| import qualified Data.Aeson as JSON
 | |
| import           Data.Aeson (ToJSON, FromJSON)
 | |
| --------------------------------------------------------------------------------
 | |
| 
 | |
| testBatch :: TestBatch -> TestTree
 | |
| testBatch (name, tests) = testGroup name $ uncurry testProperty <$> tests
 | |
| 
 | |
| jsonRoundTrip
 | |
|   :: forall a. (ToJSON a, FromJSON a, EqProp a, Arbitrary a, Show a) => TestTree
 | |
| jsonRoundTrip = testProperty "JSON round trip" $ \(x :: a) ->
 | |
|   JSON.decode (JSON.encode x) =-= Just x
 |