@@ -129,23 +129,23 @@ function assertDeepAndStrictEqual(a, b) {
129129 assert . deepStrictEqual ( b , a ) ;
130130}
131131
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 ||
135135 re `${ a } deepStrictEqual ${ b } ` ) ;
136136
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 ||
139139 re `${ b } deepStrictEqual ${ a } ` ) ;
140140}
141141
142- function assertOnlyDeepEqual ( a , b ) {
142+ function assertOnlyDeepEqual ( a , b , err ) {
143143 assert . doesNotThrow ( ( ) => assert . deepEqual ( a , b ) ) ;
144- assert . throws ( ( ) => assert . deepStrictEqual ( a , b ) ,
144+ assert . throws ( ( ) => assert . deepStrictEqual ( a , b ) , err ||
145145 re `${ a } deepStrictEqual ${ b } ` ) ;
146146
147147 assert . doesNotThrow ( ( ) => assert . deepEqual ( b , a ) ) ;
148- assert . throws ( ( ) => assert . deepStrictEqual ( b , a ) ,
148+ assert . throws ( ( ) => assert . deepStrictEqual ( b , a ) , err ||
149149 re `${ b } deepStrictEqual ${ a } ` ) ;
150150}
151151
@@ -407,4 +407,16 @@ assertOnlyDeepEqual(
407407assertDeepAndStrictEqual ( [ 1 , , , 3 ] , [ 1 , , , 3 ] ) ;
408408assertOnlyDeepEqual ( [ 1 , , , 3 ] , [ 1 , , , 3 , , , ] ) ;
409409
410+ // Handle different error messages
411+ {
412+ const err1 = new Error ( 'foo1' ) ;
413+ const err2 = new Error ( 'foo2' ) ;
414+ const err3 = new TypeError ( 'foo1' ) ;
415+ assertNotDeepOrStrict ( err1 , err2 , assert . AssertionError ) ;
416+ assertNotDeepOrStrict ( err1 , err3 , assert . AssertionError ) ;
417+ // TODO: evaluate if this should throw or not. The same applies for RegExp
418+ // Date and any object that has the same keys but not the same prototype.
419+ assertOnlyDeepEqual ( err1 , { } , assert . AssertionError ) ;
420+ }
421+
410422/* eslint-enable */
0 commit comments