feat(users/Profpatsch/my-prelude): Add Test.hs
Change-Id: Icdbbd310243baf2dc9a0038d9ea5eee7c65be421 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7793 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de>
This commit is contained in:
		
							parent
							
								
									83fb27dfbc
								
							
						
					
					
						commit
						b3d93a5048
					
				
					 3 changed files with 117 additions and 0 deletions
				
			
		
							
								
								
									
										115
									
								
								users/Profpatsch/my-prelude/Test.hs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								users/Profpatsch/my-prelude/Test.hs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,115 @@ | ||||||
|  | {-# LANGUAGE LambdaCase #-} | ||||||
|  | 
 | ||||||
|  | {- Generate Test suites. | ||||||
|  | 
 | ||||||
|  | Restricted version of hspec, introduction: http://hspec.github.io/getting-started.html | ||||||
|  | -} | ||||||
|  | module Test | ||||||
|  |   ( Spec, | ||||||
|  |     runTest, | ||||||
|  |     testMain, | ||||||
|  | 
 | ||||||
|  |     -- * Structure | ||||||
|  |     describe, | ||||||
|  |     it, | ||||||
|  | 
 | ||||||
|  |     -- * Expectations | ||||||
|  |     Expectation, | ||||||
|  |     testOk, | ||||||
|  |     testErr, | ||||||
|  |     shouldBe, | ||||||
|  |     shouldNotBe, | ||||||
|  |     shouldSatisfy, | ||||||
|  |     shouldNotSatisfy, | ||||||
|  | 
 | ||||||
|  |     -- * Setup & Teardown (hooks http://hspec.github.io/writing-specs.html#using-hooks) | ||||||
|  |     before, | ||||||
|  |     before_, | ||||||
|  |     beforeWith, | ||||||
|  |     beforeAll, | ||||||
|  |     beforeAll_, | ||||||
|  |     beforeAllWith, | ||||||
|  |     after, | ||||||
|  |     after_, | ||||||
|  |     afterAll, | ||||||
|  |     afterAll_, | ||||||
|  |     around, | ||||||
|  |     around_, | ||||||
|  |     aroundWith, | ||||||
|  |     aroundAll, | ||||||
|  |     aroundAllWith, | ||||||
|  | 
 | ||||||
|  |     -- * Common helpful predicates (use with 'shouldSatisfy') | ||||||
|  |     isRight, | ||||||
|  |     isLeft, | ||||||
|  | 
 | ||||||
|  |     -- * Pretty printing of errors | ||||||
|  |     errColored, | ||||||
|  |     module Pretty, | ||||||
|  |   ) | ||||||
|  | where | ||||||
|  | 
 | ||||||
|  | -- export more expectations if needed | ||||||
|  | 
 | ||||||
|  | import Data.Either | ||||||
|  |   ( isLeft, | ||||||
|  |     isRight, | ||||||
|  |   ) | ||||||
|  | import Pretty | ||||||
|  | import Test.Hspec | ||||||
|  |   ( Expectation, | ||||||
|  |     HasCallStack, | ||||||
|  |     Spec, | ||||||
|  |     after, | ||||||
|  |     afterAll, | ||||||
|  |     afterAll_, | ||||||
|  |     after_, | ||||||
|  |     around, | ||||||
|  |     aroundAll, | ||||||
|  |     aroundAllWith, | ||||||
|  |     aroundWith, | ||||||
|  |     around_, | ||||||
|  |     before, | ||||||
|  |     beforeAll, | ||||||
|  |     beforeAllWith, | ||||||
|  |     beforeAll_, | ||||||
|  |     beforeWith, | ||||||
|  |     before_, | ||||||
|  |     describe, | ||||||
|  |     hspec, | ||||||
|  |     it, | ||||||
|  |   ) | ||||||
|  | import Test.Hspec.Expectations.Pretty | ||||||
|  |   ( expectationFailure, | ||||||
|  |     shouldBe, | ||||||
|  |     shouldNotBe, | ||||||
|  |     shouldNotSatisfy, | ||||||
|  |     shouldSatisfy, | ||||||
|  |   ) | ||||||
|  | 
 | ||||||
|  | -- | Run a test directly (e.g. from the repl) | ||||||
|  | runTest :: Spec -> IO () | ||||||
|  | runTest = hspec | ||||||
|  | 
 | ||||||
|  | -- | Run a testsuite | ||||||
|  | testMain :: | ||||||
|  |   -- | Name of the test suite | ||||||
|  |   String -> | ||||||
|  |   -- | The tests in this test module | ||||||
|  |   Spec -> | ||||||
|  |   IO () | ||||||
|  | testMain testSuiteName tests = hspec $ describe testSuiteName tests | ||||||
|  | 
 | ||||||
|  | -- | test successful | ||||||
|  | testOk :: Expectation | ||||||
|  | testOk = pure () | ||||||
|  | 
 | ||||||
|  | -- | Abort the test with an error message. | ||||||
|  | -- If you want to display a Haskell type, use `errColored`. | ||||||
|  | testErr :: HasCallStack => String -> Expectation | ||||||
|  | testErr = expectationFailure | ||||||
|  | 
 | ||||||
|  | -- | Display a list of 'Err's as a colored error message | ||||||
|  | -- and abort the test. | ||||||
|  | errColored :: [Pretty.Err] -> Expectation | ||||||
|  | errColored = testErr . Pretty.prettyErrs | ||||||
|  | @ -11,6 +11,7 @@ pkgs.haskellPackages.mkDerivation { | ||||||
|     ./Pretty.hs |     ./Pretty.hs | ||||||
|     ./Data/Error/Tree.hs |     ./Data/Error/Tree.hs | ||||||
|     ./Aeson.hs |     ./Aeson.hs | ||||||
|  |     ./Test.hs | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   isLibrary = true; |   isLibrary = true; | ||||||
|  |  | ||||||
|  | @ -11,6 +11,7 @@ library | ||||||
|       Pretty |       Pretty | ||||||
|       Data.Error.Tree |       Data.Error.Tree | ||||||
|       Aeson |       Aeson | ||||||
|  |       Test | ||||||
| 
 | 
 | ||||||
|     -- Modules included in this executable, other than Main. |     -- Modules included in this executable, other than Main. | ||||||
|     -- other-modules: |     -- other-modules: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue