Rerunning only failed tests is nice! To use this, run `cabal new-run test -- --rerun` Change-Id: I9dc4d69749c3e3d5ba8d1661a2fdf73e49cd8ad5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3816 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.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
 |