@@ -70,9 +70,16 @@ test('deepEqual', () => {
70
70
( ) => assert . deepStrictEqual ( arr , buf ) ,
71
71
{
72
72
code : 'ERR_ASSERTION' ,
73
- message : `${ defaultMsgStartFull } ... Lines skipped\n\n` +
74
- '+ Uint8Array(4) [\n' +
75
- '- Buffer(4) [Uint8Array] [\n 120,\n...\n 122,\n 10\n ]'
73
+ message : 'Expected values to be strictly deep-equal:\n' +
74
+ '+ actual - expected\n' +
75
+ '\n' +
76
+ '+ Uint8Array(4) [\n' +
77
+ '- Buffer(4) [Uint8Array] [\n' +
78
+ ' 120,\n' +
79
+ ' 121,\n' +
80
+ ' 122,\n' +
81
+ ' 10\n' +
82
+ ' ]\n'
76
83
}
77
84
) ;
78
85
assert . deepEqual ( arr , buf ) ;
@@ -92,7 +99,7 @@ test('deepEqual', () => {
92
99
' 122,\n' +
93
100
' 10,\n' +
94
101
'+ prop: 1\n' +
95
- ' ]'
102
+ ' ]\n '
96
103
}
97
104
) ;
98
105
assert . notDeepEqual ( buf2 , buf ) ;
@@ -112,7 +119,7 @@ test('deepEqual', () => {
112
119
' 122,\n' +
113
120
' 10,\n' +
114
121
'- prop: 5\n' +
115
- ' ]'
122
+ ' ]\n '
116
123
}
117
124
) ;
118
125
assert . notDeepEqual ( arr , arr2 ) ;
@@ -127,7 +134,7 @@ test('date', () => {
127
134
code : 'ERR_ASSERTION' ,
128
135
message : `${ defaultMsgStartFull } \n\n` +
129
136
'+ 2016-01-01T00:00:00.000Z\n- MyDate 2016-01-01T00:00:00.000Z' +
130
- " {\n- '0': '1'\n- }"
137
+ " {\n- '0': '1'\n- }\n "
131
138
}
132
139
) ;
133
140
assert . throws (
@@ -136,7 +143,7 @@ test('date', () => {
136
143
code : 'ERR_ASSERTION' ,
137
144
message : `${ defaultMsgStartFull } \n\n` +
138
145
'+ MyDate 2016-01-01T00:00:00.000Z {\n' +
139
- "+ '0': '1'\n+ }\n- 2016-01-01T00:00:00.000Z"
146
+ "+ '0': '1'\n+ }\n- 2016-01-01T00:00:00.000Z\n "
140
147
}
141
148
) ;
142
149
} ) ;
@@ -151,7 +158,7 @@ test('regexp', () => {
151
158
{
152
159
code : 'ERR_ASSERTION' ,
153
160
message : `${ defaultMsgStartFull } \n\n` +
154
- "+ /test/\n- MyRegExp /test/ {\n- '0': '1'\n- }"
161
+ "+ /test/\n- MyRegExp /test/ {\n- '0': '1'\n- }\n "
155
162
}
156
163
) ;
157
164
} ) ;
@@ -474,7 +481,7 @@ test('es6 Maps and Sets', () => {
474
481
{
475
482
code : 'ERR_ASSERTION' ,
476
483
message : `${ defaultMsgStartFull } \n\n` +
477
- " Map(1) {\n+ 1 => 1\n- 1 => '1'\n }"
484
+ " Map(1) {\n+ 1 => 1\n- 1 => '1'\n }\n "
478
485
}
479
486
) ;
480
487
}
@@ -846,35 +853,55 @@ test('Additional tests', () => {
846
853
{
847
854
code : 'ERR_ASSERTION' ,
848
855
name : 'AssertionError' ,
849
- message : `${ defaultMsgStartFull } \n\n+ /ab/\n- /a/`
856
+ message : 'Expected values to be strictly deep-equal:\n' +
857
+ '+ actual - expected\n' +
858
+ '\n' +
859
+ '+ /ab/\n' +
860
+ '- /a/\n'
850
861
} ) ;
851
862
assert . throws (
852
863
( ) => assert . deepStrictEqual ( / a / g, / a / ) ,
853
864
{
854
865
code : 'ERR_ASSERTION' ,
855
866
name : 'AssertionError' ,
856
- message : `${ defaultMsgStartFull } \n\n+ /a/g\n- /a/`
867
+ message : 'Expected values to be strictly deep-equal:\n' +
868
+ '+ actual - expected\n' +
869
+ '\n' +
870
+ '+ /a/g\n' +
871
+ '- /a/\n'
857
872
} ) ;
858
873
assert . throws (
859
874
( ) => assert . deepStrictEqual ( / a / i, / a / ) ,
860
875
{
861
876
code : 'ERR_ASSERTION' ,
862
877
name : 'AssertionError' ,
863
- message : `${ defaultMsgStartFull } \n\n+ /a/i\n- /a/`
878
+ message : 'Expected values to be strictly deep-equal:\n' +
879
+ '+ actual - expected\n' +
880
+ '\n' +
881
+ '+ /a/i\n' +
882
+ '- /a/\n'
864
883
} ) ;
865
884
assert . throws (
866
885
( ) => assert . deepStrictEqual ( / a / m, / a / ) ,
867
886
{
868
887
code : 'ERR_ASSERTION' ,
869
888
name : 'AssertionError' ,
870
- message : `${ defaultMsgStartFull } \n\n+ /a/m\n- /a/`
889
+ message : 'Expected values to be strictly deep-equal:\n' +
890
+ '+ actual - expected\n' +
891
+ '\n' +
892
+ '+ /a/m\n' +
893
+ '- /a/\n'
871
894
} ) ;
872
895
assert . throws (
873
896
( ) => assert . deepStrictEqual ( / a a / igm, / a a / im) ,
874
897
{
875
898
code : 'ERR_ASSERTION' ,
876
899
name : 'AssertionError' ,
877
- message : `${ defaultMsgStartFull } \n\n+ /aa/gim\n- /aa/im\n ^`
900
+ message : 'Expected values to be strictly deep-equal:\n' +
901
+ '+ actual - expected\n' +
902
+ '\n' +
903
+ '+ /aa/gim\n' +
904
+ '- /aa/im\n'
878
905
} ) ;
879
906
880
907
{
@@ -909,23 +936,23 @@ test('Having the same number of owned properties && the same set of keys', () =>
909
936
{
910
937
code : 'ERR_ASSERTION' ,
911
938
name : 'AssertionError' ,
912
- message : `${ defaultMsgStartFull } \n\n [\n+ 4\n- '4'\n ]`
939
+ message : `${ defaultMsgStartFull } \n\n [\n+ 4\n- '4'\n ]\n `
913
940
} ) ;
914
941
assert . throws (
915
942
( ) => assert . deepStrictEqual ( { a : 4 } , { a : 4 , b : true } ) ,
916
943
{
917
944
code : 'ERR_ASSERTION' ,
918
945
name : 'AssertionError' ,
919
946
message : `${ defaultMsgStartFull } \n\n ` +
920
- '{\n a: 4,\n- b: true\n }'
947
+ '{\n a: 4,\n- b: true\n }\n '
921
948
} ) ;
922
949
assert . throws (
923
950
( ) => assert . deepStrictEqual ( [ 'a' ] , { 0 : 'a' } ) ,
924
951
{
925
952
code : 'ERR_ASSERTION' ,
926
953
name : 'AssertionError' ,
927
954
message : `${ defaultMsgStartFull } \n\n` +
928
- "+ [\n+ 'a'\n+ ]\n- {\n- '0': 'a'\n- }"
955
+ "+ [\n+ 'a'\n+ ]\n- {\n- '0': 'a'\n- }\n "
929
956
} ) ;
930
957
} ) ;
931
958
@@ -964,25 +991,25 @@ test('Check extra properties on errors', () => {
964
991
( ) => assert . deepStrictEqual ( a , b ) ,
965
992
{
966
993
operator : 'throws' ,
967
- message : `${ defaultMsgStartFull } \n\n` +
968
- ' [TypeError: foo] {\n+ foo: \'bar\'\n- foo: \'baz\'\n }' ,
994
+ message : '' ,
969
995
}
970
996
) ,
971
997
{
972
998
message : 'Expected values to be strictly deep-equal:\n' +
973
- '+ actual - expected ... Lines skipped \n' +
999
+ '+ actual - expected\n' +
974
1000
'\n' +
975
1001
' Comparison {\n' +
976
- " message: 'Expected values to be strictly deep-equal:\\n' +\n" +
977
- '...\n' +
978
- " ' [TypeError: foo] { \\n' +\n" +
979
- " \"+ foo: 'bar' \\n\" +\n" +
980
- " + \"- foo: 'baz. '\\n\ " +\n" +
981
- "- \ "- foo: 'baz'\\n\ " +\n" +
982
- " ' }',\n" +
1002
+ "+ message: 'Expected values to be strictly deep-equal:\\n' +\n" +
1003
+ "+ '+ actual - expected\\n' +\n" +
1004
+ "+ ' \\n' +\n" +
1005
+ "+ ' [TypeError: foo] { \\n' +\n" +
1006
+ ` + "+ foo: 'bar '\\n" +\n` +
1007
+ `+ "- foo: 'baz. '\\n" +\n` +
1008
+ "+ ' }\\n ',\n" +
983
1009
"+ operator: 'deepStrictEqual'\n" +
1010
+ "- message: '',\n" +
984
1011
"- operator: 'throws'\n" +
985
- ' }'
1012
+ ' }\n '
986
1013
}
987
1014
) ;
988
1015
} ) ;
@@ -995,7 +1022,7 @@ test('Check proxies', () => {
995
1022
assert . throws (
996
1023
( ) => assert . deepStrictEqual ( arrProxy , [ 1 , 2 , 3 ] ) ,
997
1024
{ message : `${ defaultMsgStartFull } \n\n` +
998
- ' [\n 1,\n 2,\n- 3\n ]' }
1025
+ ' [\n 1,\n 2,\n- 3\n ]\n ' }
999
1026
) ;
1000
1027
util . inspect . defaultOptions = tmp ;
1001
1028
@@ -1052,7 +1079,7 @@ test('Basic array out of bounds check', () => {
1052
1079
' 1,\n' +
1053
1080
' 2,\n' +
1054
1081
'+ 3\n' +
1055
- ' ]'
1082
+ ' ]\n '
1056
1083
}
1057
1084
) ;
1058
1085
} ) ;
@@ -1347,6 +1374,107 @@ test('Comparing two different WeakSet instances', () => {
1347
1374
assertNotDeepOrStrict ( weakSet1 , weakSet2 ) ;
1348
1375
} ) ;
1349
1376
1377
+ test ( 'Comparing two arrays nested inside object, with overlapping elements' , ( ) => {
1378
+ const actual = { a : { b : [ 1 , 2 , 3 ] } } ;
1379
+ const expected = { a : { b : [ 3 , 4 , 5 ] } } ;
1380
+
1381
+ assert . throws (
1382
+ ( ) => assert . deepStrictEqual ( actual , expected ) ,
1383
+ {
1384
+ code : 'ERR_ASSERTION' ,
1385
+ name : 'AssertionError' ,
1386
+ message : 'Expected values to be strictly deep-equal:\n' +
1387
+ '+ actual - expected\n' +
1388
+ '\n' +
1389
+ ' {\n' +
1390
+ ' a: {\n' +
1391
+ ' b: [\n' +
1392
+ '+ 1,\n' +
1393
+ '+ 2,\n' +
1394
+ ' 3,\n' +
1395
+ '- 4,\n' +
1396
+ '- 5\n' +
1397
+ ' ]\n' +
1398
+ ' }\n' +
1399
+ ' }\n'
1400
+ }
1401
+ ) ;
1402
+ } ) ;
1403
+
1404
+ test ( 'Comparing two arrays nested inside object, with overlapping elements, swapping keys' , ( ) => {
1405
+ const actual = { a : { b : [ 1 , 2 , 3 ] , c : 2 } } ;
1406
+ const expected = { a : { b : 1 , c : [ 3 , 4 , 5 ] } } ;
1407
+
1408
+ assert . throws (
1409
+ ( ) => assert . deepStrictEqual ( actual , expected ) ,
1410
+ {
1411
+ code : 'ERR_ASSERTION' ,
1412
+ name : 'AssertionError' ,
1413
+ message : 'Expected values to be strictly deep-equal:\n' +
1414
+ '+ actual - expected\n' +
1415
+ '\n' +
1416
+ ' {\n' +
1417
+ ' a: {\n' +
1418
+ '+ b: [\n' +
1419
+ '+ 1,\n' +
1420
+ '+ 2,\n' +
1421
+ '- b: 1,\n' +
1422
+ '- c: [\n' +
1423
+ ' 3,\n' +
1424
+ '- 4,\n' +
1425
+ '- 5\n' +
1426
+ ' ],\n' +
1427
+ '+ c: 2\n' +
1428
+ ' }\n' +
1429
+ ' }\n'
1430
+ }
1431
+ ) ;
1432
+ } ) ;
1433
+
1434
+ test ( 'Detects differences in deeply nested arrays instead of seeing a new object' , ( ) => {
1435
+ const actual = [
1436
+ { a : 1 } ,
1437
+ 2 ,
1438
+ 3 ,
1439
+ 4 ,
1440
+ { c : [ 1 , 2 , 3 ] } ,
1441
+ ] ;
1442
+ const expected = [
1443
+ { a : 1 } ,
1444
+ 2 ,
1445
+ 3 ,
1446
+ 4 ,
1447
+ { c : [ 3 , 4 , 5 ] } ,
1448
+ ] ;
1449
+
1450
+ assert . throws (
1451
+ ( ) => assert . deepStrictEqual ( actual , expected ) ,
1452
+ {
1453
+ code : 'ERR_ASSERTION' ,
1454
+ name : 'AssertionError' ,
1455
+ message : 'Expected values to be strictly deep-equal:\n' +
1456
+ '+ actual - expected\n' +
1457
+ '... Skipped lines\n' +
1458
+ '\n' +
1459
+ ' [\n' +
1460
+ ' {\n' +
1461
+ ' a: 1\n' +
1462
+ ' },\n' +
1463
+ ' 2,\n' +
1464
+ '...\n' +
1465
+ ' c: [\n' +
1466
+ '+ 1,\n' +
1467
+ '+ 2,\n' +
1468
+ ' 3,\n' +
1469
+ '- 4,\n' +
1470
+ '- 5\n' +
1471
+ ' ]\n' +
1472
+ ' }\n' +
1473
+ ' ]\n'
1474
+ }
1475
+ ) ;
1476
+ } ) ;
1477
+
1350
1478
// check URL
1351
1479
{
1352
1480
const a = new URL ( 'http://foo' ) ;
0 commit comments