@@ -129,23 +129,23 @@ function assertDeepAndStrictEqual(a, b) {
129
129
assert . deepStrictEqual ( b , a ) ;
130
130
}
131
131
132
- function assertNotDeepOrStrict ( a , b ) {
133
- assert . throws ( ( ) => assert . deepEqual ( a , b ) , re `${ a } deepEqual ${ b } ` ) ;
134
- assert . throws ( ( ) => assert . deepStrictEqual ( a , b ) ,
132
+ function assertNotDeepOrStrict ( a , b , err ) {
133
+ assert . throws ( ( ) => assert . deepEqual ( a , b ) , err || re `${ a } deepEqual ${ b } ` ) ;
134
+ assert . throws ( ( ) => assert . deepStrictEqual ( a , b ) , err ||
135
135
re `${ a } deepStrictEqual ${ b } ` ) ;
136
136
137
- assert . throws ( ( ) => assert . deepEqual ( b , a ) , re `${ b } deepEqual ${ a } ` ) ;
138
- assert . throws ( ( ) => assert . deepStrictEqual ( b , a ) ,
137
+ assert . throws ( ( ) => assert . deepEqual ( b , a ) , err || re `${ b } deepEqual ${ a } ` ) ;
138
+ assert . throws ( ( ) => assert . deepStrictEqual ( b , a ) , err ||
139
139
re `${ b } deepStrictEqual ${ a } ` ) ;
140
140
}
141
141
142
- function assertOnlyDeepEqual ( a , b ) {
142
+ function assertOnlyDeepEqual ( a , b , err ) {
143
143
assert . doesNotThrow ( ( ) => assert . deepEqual ( a , b ) ) ;
144
- assert . throws ( ( ) => assert . deepStrictEqual ( a , b ) ,
144
+ assert . throws ( ( ) => assert . deepStrictEqual ( a , b ) , err ||
145
145
re `${ a } deepStrictEqual ${ b } ` ) ;
146
146
147
147
assert . doesNotThrow ( ( ) => assert . deepEqual ( b , a ) ) ;
148
- assert . throws ( ( ) => assert . deepStrictEqual ( b , a ) ,
148
+ assert . throws ( ( ) => assert . deepStrictEqual ( b , a ) , err ||
149
149
re `${ b } deepStrictEqual ${ a } ` ) ;
150
150
}
151
151
@@ -469,4 +469,16 @@ assertOnlyDeepEqual(
469
469
assertDeepAndStrictEqual ( [ 1 , , , 3 ] , [ 1 , , , 3 ] ) ;
470
470
assertOnlyDeepEqual ( [ 1 , , , 3 ] , [ 1 , , , 3 , , , ] ) ;
471
471
472
+ // Handle different error messages
473
+ {
474
+ const err1 = new Error ( 'foo1' ) ;
475
+ const err2 = new Error ( 'foo2' ) ;
476
+ const err3 = new TypeError ( 'foo1' ) ;
477
+ assertNotDeepOrStrict ( err1 , err2 , assert . AssertionError ) ;
478
+ assertNotDeepOrStrict ( err1 , err3 , assert . AssertionError ) ;
479
+ // TODO: evaluate if this should throw or not. The same applies for RegExp
480
+ // Date and any object that has the same keys but not the same prototype.
481
+ assertOnlyDeepEqual ( err1 , { } , assert . AssertionError ) ;
482
+ }
483
+
472
484
/* eslint-enable */
0 commit comments