Skip to content

Commit 2044562

Browse files
authored
Merge pull request #9 from 8084/master
added: assertEqual', assertFalse', assertTrue'
2 parents 76b5eb1 + 7283f24 commit 2044562

File tree

1 file changed

+42
-2
lines changed

1 file changed

+42
-2
lines changed

src/Test/Assert.purs

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@ module Test.Assert
22
( assert
33
, assert'
44
, assertEqual
5+
, assertEqual'
56
, assertFalse
7+
, assertFalse'
68
, assertThrows
79
, assertThrows'
810
, assertTrue
11+
, assertTrue'
912
) where
1013

1114
import Prelude
@@ -65,11 +68,26 @@ assertEqual
6568
=> Show a
6669
=> { actual :: a, expected :: a }
6770
-> Effect Unit
68-
assertEqual {actual, expected} = do
71+
assertEqual = assertEqual' ""
72+
73+
-- | Compares the `expected` and `actual` values for equality and throws a
74+
-- | runtime exception with the specified message when the values are not equal.
75+
-- |
76+
-- | The message also indicates the expected value and the actual value.
77+
assertEqual'
78+
:: forall a
79+
. Eq a
80+
=> Show a
81+
=> String
82+
-> { actual :: a, expected :: a }
83+
-> Effect Unit
84+
assertEqual' userMessage {actual, expected} = do
6985
unless result $ error message
7086
assert' message result
7187
where
72-
message = "Expected: " <> show expected <> "\nActual: " <> show actual
88+
message = (if userMessage == "" then "" else userMessage <> "\n")
89+
<> "Expected: " <> show expected
90+
<> "\nActual: " <> show actual
7391
result = actual == expected
7492

7593
-- | Throws a runtime exception when the value is `false`.
@@ -81,6 +99,17 @@ assertTrue
8199
-> Effect Unit
82100
assertTrue actual = assertEqual { actual, expected: true }
83101

102+
-- | Throws a runtime exception with the specified message when the value is
103+
-- | `false`.
104+
-- |
105+
-- | The message also indicates the expected value (`true`)
106+
-- | and the actual value (`false`).
107+
assertTrue'
108+
:: String
109+
-> Boolean
110+
-> Effect Unit
111+
assertTrue' message actual = assertEqual' message { actual, expected: true }
112+
84113
-- | Throws a runtime exception when the value is `true`.
85114
-- |
86115
-- | The message indicates the expected value (`false`)
@@ -89,3 +118,14 @@ assertFalse
89118
:: Boolean
90119
-> Effect Unit
91120
assertFalse actual = assertEqual { actual, expected: false }
121+
122+
-- | Throws a runtime exception with the specified message when the value is
123+
-- | `true`.
124+
-- |
125+
-- | The message also indicates the expected value (`false`)
126+
-- | and the actual value (`true`).
127+
assertFalse'
128+
:: String
129+
-> Boolean
130+
-> Effect Unit
131+
assertFalse' message actual = assertEqual' message { actual, expected: false }

0 commit comments

Comments
 (0)