@@ -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
@@ -469,4 +469,16 @@ assertOnlyDeepEqual(
469469assertDeepAndStrictEqual ( [ 1 , , , 3 ] , [ 1 , , , 3 ] ) ;
470470assertOnlyDeepEqual ( [ 1 , , , 3 ] , [ 1 , , , 3 , , , ] ) ;
471471
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+
472484/* eslint-enable */
0 commit comments