@@ -2,10 +2,13 @@ module Test.Assert
2
2
( assert
3
3
, assert'
4
4
, assertEqual
5
+ , assertEqual'
5
6
, assertFalse
7
+ , assertFalse'
6
8
, assertThrows
7
9
, assertThrows'
8
10
, assertTrue
11
+ , assertTrue'
9
12
) where
10
13
11
14
import Prelude
@@ -65,11 +68,26 @@ assertEqual
65
68
=> Show a
66
69
=> { actual :: a , expected :: a }
67
70
-> 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
69
85
unless result $ error message
70
86
assert' message result
71
87
where
72
- message = " Expected: " <> show expected <> " \n Actual: " <> show actual
88
+ message = (if userMessage == " " then " " else userMessage <> " \n " )
89
+ <> " Expected: " <> show expected
90
+ <> " \n Actual: " <> show actual
73
91
result = actual == expected
74
92
75
93
-- | Throws a runtime exception when the value is `false`.
@@ -81,6 +99,17 @@ assertTrue
81
99
-> Effect Unit
82
100
assertTrue actual = assertEqual { actual, expected: true }
83
101
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
+
84
113
-- | Throws a runtime exception when the value is `true`.
85
114
-- |
86
115
-- | The message indicates the expected value (`false`)
@@ -89,3 +118,14 @@ assertFalse
89
118
:: Boolean
90
119
-> Effect Unit
91
120
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