@@ -36,19 +36,13 @@ const assert = module.exports = ok;
36
36
// both the actual and expected values to the assertion error for
37
37
// display purposes.
38
38
39
- function innerFail ( actual , expected , message , operator , stackStartFunction ) {
40
- if ( message instanceof Error ) throw message ;
39
+ function innerFail ( obj ) {
40
+ if ( obj . message instanceof Error ) throw obj . message ;
41
41
42
- throw new errors . AssertionError ( {
43
- message,
44
- actual,
45
- expected,
46
- operator,
47
- stackStartFunction
48
- } ) ;
42
+ throw new errors . AssertionError ( obj ) ;
49
43
}
50
44
51
- function fail ( actual , expected , message , operator , stackStartFunction ) {
45
+ function fail ( actual , expected , message , operator , stackStartFn ) {
52
46
const argsLen = arguments . length ;
53
47
54
48
if ( argsLen === 0 ) {
@@ -60,7 +54,13 @@ function fail(actual, expected, message, operator, stackStartFunction) {
60
54
operator = '!=' ;
61
55
}
62
56
63
- innerFail ( actual , expected , message , operator , stackStartFunction || fail ) ;
57
+ innerFail ( {
58
+ actual,
59
+ expected,
60
+ message,
61
+ operator,
62
+ stackStartFn : stackStartFn || fail
63
+ } ) ;
64
64
}
65
65
66
66
assert . fail = fail ;
@@ -75,64 +75,121 @@ assert.AssertionError = errors.AssertionError;
75
75
// Pure assertion tests whether a value is truthy, as determined
76
76
// by !!value.
77
77
function ok ( value , message ) {
78
- if ( ! value ) innerFail ( value , true , message , '==' , ok ) ;
78
+ if ( ! value ) {
79
+ innerFail ( {
80
+ actual : value ,
81
+ expected : true ,
82
+ message,
83
+ operator : '==' ,
84
+ stackStartFn : ok
85
+ } ) ;
86
+ }
79
87
}
80
88
assert . ok = ok ;
81
89
82
90
// The equality assertion tests shallow, coercive equality with ==.
83
91
/* eslint-disable no-restricted-properties */
84
92
assert . equal = function equal ( actual , expected , message ) {
85
93
// eslint-disable-next-line eqeqeq
86
- if ( actual != expected ) innerFail ( actual , expected , message , '==' , equal ) ;
94
+ if ( actual != expected ) {
95
+ innerFail ( {
96
+ actual,
97
+ expected,
98
+ message,
99
+ operator : '==' ,
100
+ stackStartFn : equal
101
+ } ) ;
102
+ }
87
103
} ;
88
104
89
105
// The non-equality assertion tests for whether two objects are not
90
106
// equal with !=.
91
107
assert . notEqual = function notEqual ( actual , expected , message ) {
92
108
// eslint-disable-next-line eqeqeq
93
109
if ( actual == expected ) {
94
- innerFail ( actual , expected , message , '!=' , notEqual ) ;
110
+ innerFail ( {
111
+ actual,
112
+ expected,
113
+ message,
114
+ operator : '!=' ,
115
+ stackStartFn : notEqual
116
+ } ) ;
95
117
}
96
118
} ;
97
119
98
120
// The equivalence assertion tests a deep equality relation.
99
121
assert . deepEqual = function deepEqual ( actual , expected , message ) {
100
122
if ( ! isDeepEqual ( actual , expected ) ) {
101
- innerFail ( actual , expected , message , 'deepEqual' , deepEqual ) ;
123
+ innerFail ( {
124
+ actual,
125
+ expected,
126
+ message,
127
+ operator : 'deepEqual' ,
128
+ stackStartFn : deepEqual
129
+ } ) ;
102
130
}
103
131
} ;
104
132
105
133
// The non-equivalence assertion tests for any deep inequality.
106
134
assert . notDeepEqual = function notDeepEqual ( actual , expected , message ) {
107
135
if ( isDeepEqual ( actual , expected ) ) {
108
- innerFail ( actual , expected , message , 'notDeepEqual' , notDeepEqual ) ;
136
+ innerFail ( {
137
+ actual,
138
+ expected,
139
+ message,
140
+ operator : 'notDeepEqual' ,
141
+ stackStartFn : notDeepEqual
142
+ } ) ;
109
143
}
110
144
} ;
111
145
/* eslint-enable */
112
146
113
147
assert . deepStrictEqual = function deepStrictEqual ( actual , expected , message ) {
114
148
if ( ! isDeepStrictEqual ( actual , expected ) ) {
115
- innerFail ( actual , expected , message , 'deepStrictEqual' , deepStrictEqual ) ;
149
+ innerFail ( {
150
+ actual,
151
+ expected,
152
+ message,
153
+ operator : 'deepStrictEqual' ,
154
+ stackStartFn : deepStrictEqual
155
+ } ) ;
116
156
}
117
157
} ;
118
158
119
159
assert . notDeepStrictEqual = notDeepStrictEqual ;
120
160
function notDeepStrictEqual ( actual , expected , message ) {
121
161
if ( isDeepStrictEqual ( actual , expected ) ) {
122
- innerFail ( actual , expected , message , 'notDeepStrictEqual' ,
123
- notDeepStrictEqual ) ;
162
+ innerFail ( {
163
+ actual,
164
+ expected,
165
+ message,
166
+ operator : 'notDeepStrictEqual' ,
167
+ stackStartFn : notDeepStrictEqual
168
+ } ) ;
124
169
}
125
170
}
126
171
127
172
assert . strictEqual = function strictEqual ( actual , expected , message ) {
128
173
if ( ! Object . is ( actual , expected ) ) {
129
- innerFail ( actual , expected , message , 'strictEqual' , strictEqual ) ;
174
+ innerFail ( {
175
+ actual,
176
+ expected,
177
+ message,
178
+ operator : 'strictEqual' ,
179
+ stackStartFn : strictEqual
180
+ } ) ;
130
181
}
131
182
} ;
132
183
133
184
assert . notStrictEqual = function notStrictEqual ( actual , expected , message ) {
134
185
if ( Object . is ( actual , expected ) ) {
135
- innerFail ( actual , expected , message , 'notStrictEqual' , notStrictEqual ) ;
186
+ innerFail ( {
187
+ actual,
188
+ expected,
189
+ message,
190
+ operator : 'notStrictEqual' ,
191
+ stackStartFn : notStrictEqual
192
+ } ) ;
136
193
}
137
194
} ;
138
195
@@ -180,18 +237,27 @@ function innerThrows(shouldThrow, block, expected, message) {
180
237
details += ` (${ expected . name } )` ;
181
238
}
182
239
details += message ? `: ${ message } ` : '.' ;
183
- fail ( actual , expected , `Missing expected exception${ details } ` , 'throws' ) ;
240
+ innerFail ( {
241
+ actual,
242
+ expected,
243
+ operator : 'throws' ,
244
+ message : `Missing expected exception${ details } ` ,
245
+ stackStartFn : innerThrows
246
+ } ) ;
184
247
}
185
248
if ( expected && expectedException ( actual , expected ) === false ) {
186
249
throw actual ;
187
250
}
188
251
} else if ( actual !== undefined ) {
189
252
if ( ! expected || expectedException ( actual , expected ) ) {
190
253
details = message ? `: ${ message } ` : '.' ;
191
- fail ( actual ,
192
- expected ,
193
- `Got unwanted exception${ details } \n${ actual . message } ` ,
194
- 'doesNotThrow' ) ;
254
+ innerFail ( {
255
+ actual,
256
+ expected,
257
+ operator : 'doesNotThrow' ,
258
+ message : `Got unwanted exception${ details } \n${ actual . message } ` ,
259
+ stackStartFn : innerThrows
260
+ } ) ;
195
261
}
196
262
throw actual ;
197
263
}
0 commit comments