1
1
"use strict" ;
2
2
// above is required for Object.freeze to fail correctly.
3
3
4
- const test = require ( "ava" ) ;
4
+ const assert = require ( "node:assert/strict" )
5
+ const test = require ( "node:test" ) ;
6
+
5
7
const Merge = require ( "../src/Merge.js" ) ;
6
8
const { DeepCopy } = Merge ;
7
9
8
10
test ( "Shallow Merge" , ( t ) => {
9
- t . deepEqual ( Merge ( { } , { } ) , { } ) ;
10
- t . deepEqual ( Merge ( { a : 1 } , { a : 2 } ) , { a : 2 } ) ;
11
- t . deepEqual ( Merge ( { a : 1 } , { a : 2 } , undefined ) , { a : 2 } ) ;
12
- t . deepEqual ( Merge ( { a : 1 } , { a : 2 } , { a : 3 } ) , { a : 3 } ) ;
11
+ assert . deepEqual ( Merge ( { } , { } ) , { } ) ;
12
+ assert . deepEqual ( Merge ( { a : 1 } , { a : 2 } ) , { a : 2 } ) ;
13
+ assert . deepEqual ( Merge ( { a : 1 } , { a : 2 } , undefined ) , { a : 2 } ) ;
14
+ assert . deepEqual ( Merge ( { a : 1 } , { a : 2 } , { a : 3 } ) , { a : 3 } ) ;
13
15
14
- t . deepEqual ( Merge ( { a : 1 } , { b : 1 } ) , { a : 1 , b : 1 } ) ;
15
- t . deepEqual ( Merge ( { a : 1 } , { b : 1 } , { c : 1 } ) , { a : 1 , b : 1 , c : 1 } ) ;
16
+ assert . deepEqual ( Merge ( { a : 1 } , { b : 1 } ) , { a : 1 , b : 1 } ) ;
17
+ assert . deepEqual ( Merge ( { a : 1 } , { b : 1 } , { c : 1 } ) , { a : 1 , b : 1 , c : 1 } ) ;
16
18
17
- t . deepEqual ( Merge ( { a : [ 1 ] } , { a : [ 2 ] } ) , { a : [ 1 , 2 ] } ) ;
19
+ assert . deepEqual ( Merge ( { a : [ 1 ] } , { a : [ 2 ] } ) , { a : [ 1 , 2 ] } ) ;
18
20
} ) ;
19
21
20
22
test ( "Doesn’t need to return" , ( t ) => {
21
23
var b = { a : 2 } ;
22
24
Merge ( b , { a : 1 } ) ;
23
- t . deepEqual ( b , { a : 1 } ) ;
25
+ assert . deepEqual ( b , { a : 1 } ) ;
24
26
} ) ;
25
27
26
28
test ( "Invalid" , ( t ) => {
27
- t . deepEqual ( Merge ( { } , 1 ) , { } ) ;
28
- t . deepEqual ( Merge ( { } , [ 1 ] ) , { } ) ;
29
- t . deepEqual ( Merge ( { } , "string" ) , { } ) ;
29
+ assert . deepEqual ( Merge ( { } , 1 ) , { } ) ;
30
+ assert . deepEqual ( Merge ( { } , [ 1 ] ) , { } ) ;
31
+ assert . deepEqual ( Merge ( { } , "string" ) , { } ) ;
30
32
} ) ;
31
33
32
34
test ( "Non-Object target" , ( t ) => {
33
- t . deepEqual ( Merge ( 1 , { a : 1 } ) , { a : 1 } ) ;
34
- t . deepEqual ( Merge ( [ 1 ] , { a : 1 } ) , { a : 1 } ) ;
35
- t . deepEqual ( Merge ( "string" , { a : 1 } ) , { a : 1 } ) ;
35
+ assert . deepEqual ( Merge ( 1 , { a : 1 } ) , { a : 1 } ) ;
36
+ assert . deepEqual ( Merge ( [ 1 ] , { a : 1 } ) , { a : 1 } ) ;
37
+ assert . deepEqual ( Merge ( "string" , { a : 1 } ) , { a : 1 } ) ;
36
38
} ) ;
37
39
38
40
test ( "Deep" , ( t ) => {
39
- t . deepEqual ( Merge ( { a : { b : 1 } } , { a : { c : 1 } } ) , { a : { b : 1 , c : 1 } } ) ;
40
- t . deepEqual ( Merge ( { a : { b : 1 } } , { a : { c : 1 } } , undefined ) , {
41
+ assert . deepEqual ( Merge ( { a : { b : 1 } } , { a : { c : 1 } } ) , { a : { b : 1 , c : 1 } } ) ;
42
+ assert . deepEqual ( Merge ( { a : { b : 1 } } , { a : { c : 1 } } , undefined ) , {
41
43
a : { b : 1 , c : 1 } ,
42
44
} ) ;
43
45
} ) ;
44
46
45
47
test ( "Deep, override: prefix" , ( t ) => {
46
- t . deepEqual ( Merge ( { a : { b : [ 1 , 2 ] } } , { a : { b : [ 3 , 4 ] } } ) , {
48
+ assert . deepEqual ( Merge ( { a : { b : [ 1 , 2 ] } } , { a : { b : [ 3 , 4 ] } } ) , {
47
49
a : { b : [ 1 , 2 , 3 , 4 ] } ,
48
50
} ) ;
49
- t . deepEqual ( Merge ( { a : [ 1 ] } , { a : [ 2 ] } ) , { a : [ 1 , 2 ] } ) ;
50
- t . deepEqual ( Merge ( { a : [ 1 ] } , { "override:a" : [ 2 ] } ) , { a : [ 2 ] } ) ;
51
- t . deepEqual ( Merge ( { a : { b : [ 1 , 2 ] } } , { a : { "override:b" : [ 3 , 4 ] } } ) , {
51
+ assert . deepEqual ( Merge ( { a : [ 1 ] } , { a : [ 2 ] } ) , { a : [ 1 , 2 ] } ) ;
52
+ assert . deepEqual ( Merge ( { a : [ 1 ] } , { "override:a" : [ 2 ] } ) , { a : [ 2 ] } ) ;
53
+ assert . deepEqual ( Merge ( { a : { b : [ 1 , 2 ] } } , { a : { "override:b" : [ 3 , 4 ] } } ) , {
52
54
a : { b : [ 3 , 4 ] } ,
53
55
} ) ;
54
56
} ) ;
55
57
56
58
test ( "Deep, override: prefix at root" , ( t ) => {
57
- t . deepEqual ( Merge ( { "override:a" : [ 1 ] } , { a : [ 2 ] } ) , { a : [ 1 , 2 ] } ) ;
59
+ assert . deepEqual ( Merge ( { "override:a" : [ 1 ] } , { a : [ 2 ] } ) , { a : [ 1 , 2 ] } ) ;
58
60
} ) ;
59
61
60
62
test ( "Deep, override: prefix at other placements" , ( t ) => {
61
- t . deepEqual (
63
+ assert . deepEqual (
62
64
Merge (
63
65
{
64
66
a : {
@@ -78,7 +80,7 @@ test("Deep, override: prefix at other placements", (t) => {
78
80
}
79
81
) ;
80
82
81
- t . deepEqual (
83
+ assert . deepEqual (
82
84
Merge (
83
85
{
84
86
a : {
@@ -98,7 +100,7 @@ test("Deep, override: prefix at other placements", (t) => {
98
100
}
99
101
) ;
100
102
101
- t . deepEqual (
103
+ assert . deepEqual (
102
104
Merge (
103
105
{
104
106
"override:a" : {
@@ -118,7 +120,7 @@ test("Deep, override: prefix at other placements", (t) => {
118
120
}
119
121
) ;
120
122
121
- t . deepEqual (
123
+ assert . deepEqual (
122
124
Merge (
123
125
{
124
126
a : {
@@ -139,7 +141,7 @@ test("Deep, override: prefix at other placements", (t) => {
139
141
}
140
142
) ;
141
143
142
- t . deepEqual (
144
+ assert . deepEqual (
143
145
Merge (
144
146
{
145
147
a : {
@@ -167,7 +169,7 @@ test("Deep, override: prefix at other placements", (t) => {
167
169
} ) ;
168
170
169
171
test ( "Edge case from #2470" , ( t ) => {
170
- t . deepEqual (
172
+ assert . deepEqual (
171
173
Merge (
172
174
{
173
175
a : {
@@ -198,7 +200,7 @@ test("Edge case from #2470", (t) => {
198
200
} ) ;
199
201
200
202
test . skip ( "Edge case from #2684 (multiple conflicting override: props)" , ( t ) => {
201
- t . deepEqual (
203
+ assert . deepEqual (
202
204
Merge (
203
205
{
204
206
a : {
@@ -226,25 +228,25 @@ test.skip("Edge case from #2684 (multiple conflicting override: props)", (t) =>
226
228
} ) ;
227
229
228
230
test ( "Deep, override: empty" , ( t ) => {
229
- t . deepEqual ( Merge ( { } , { a : { b : [ 3 , 4 ] } } ) , { a : { b : [ 3 , 4 ] } } ) ;
230
- t . deepEqual ( Merge ( { } , { a : [ 2 ] } ) , { a : [ 2 ] } ) ;
231
- t . deepEqual ( Merge ( { } , { "override:a" : [ 2 ] } ) , { a : [ 2 ] } ) ;
232
- t . deepEqual ( Merge ( { } , { a : { "override:b" : [ 3 , 4 ] } } ) , { a : { b : [ 3 , 4 ] } } ) ;
231
+ assert . deepEqual ( Merge ( { } , { a : { b : [ 3 , 4 ] } } ) , { a : { b : [ 3 , 4 ] } } ) ;
232
+ assert . deepEqual ( Merge ( { } , { a : [ 2 ] } ) , { a : [ 2 ] } ) ;
233
+ assert . deepEqual ( Merge ( { } , { "override:a" : [ 2 ] } ) , { a : [ 2 ] } ) ;
234
+ assert . deepEqual ( Merge ( { } , { a : { "override:b" : [ 3 , 4 ] } } ) , { a : { b : [ 3 , 4 ] } } ) ;
233
235
} ) ;
234
236
235
237
test ( "DeepCopy" , ( t ) => {
236
- t . deepEqual ( DeepCopy ( { } , { a : { b : [ 3 , 4 ] } } ) , { a : { b : [ 3 , 4 ] } } ) ;
237
- t . deepEqual ( DeepCopy ( { } , { a : [ 2 ] } ) , { a : [ 2 ] } ) ;
238
- t . deepEqual ( DeepCopy ( { } , { a : [ 2 ] } , undefined ) , { a : [ 2 ] } ) ;
239
- t . deepEqual ( DeepCopy ( { } , undefined , { a : [ 2 ] } ) , { a : [ 2 ] } ) ;
240
- t . deepEqual ( DeepCopy ( { } , { "override:a" : [ 2 ] } ) , { "override:a" : [ 2 ] } ) ;
241
- t . deepEqual ( DeepCopy ( { } , { a : { "override:b" : [ 3 , 4 ] } } ) , {
238
+ assert . deepEqual ( DeepCopy ( { } , { a : { b : [ 3 , 4 ] } } ) , { a : { b : [ 3 , 4 ] } } ) ;
239
+ assert . deepEqual ( DeepCopy ( { } , { a : [ 2 ] } ) , { a : [ 2 ] } ) ;
240
+ assert . deepEqual ( DeepCopy ( { } , { a : [ 2 ] } , undefined ) , { a : [ 2 ] } ) ;
241
+ assert . deepEqual ( DeepCopy ( { } , undefined , { a : [ 2 ] } ) , { a : [ 2 ] } ) ;
242
+ assert . deepEqual ( DeepCopy ( { } , { "override:a" : [ 2 ] } ) , { "override:a" : [ 2 ] } ) ;
243
+ assert . deepEqual ( DeepCopy ( { } , { a : { "override:b" : [ 3 , 4 ] } } ) , {
242
244
a : { "override:b" : [ 3 , 4 ] } ,
243
245
} ) ;
244
246
} ) ;
245
247
246
248
test ( "String does not overrides parent key with object" , ( t ) => {
247
- t . deepEqual ( Merge ( {
249
+ assert . deepEqual ( Merge ( {
248
250
eleventy : {
249
251
key1 : "a"
250
252
}
@@ -258,8 +260,8 @@ test("String does not overrides parent key with object", (t) => {
258
260
} ) ;
259
261
} ) ;
260
262
261
- test ( "Merge with frozen target object fails" , ( t ) => {
262
- t . throws ( ( ) => {
263
+ test ( "Merge with frozen target object fails" , ( ) => {
264
+ try {
263
265
Merge ( {
264
266
eleventy : Object . freeze ( {
265
267
key1 : "a"
@@ -269,11 +271,13 @@ test("Merge with frozen target object fails", (t) => {
269
271
key2 : "b"
270
272
}
271
273
} ) ;
272
- } ) ;
274
+ } catch ( e ) {
275
+ assert . equal ( true , true ) ;
276
+ }
273
277
} ) ;
274
278
275
279
test ( "Merge with frozen source object (1 level deep) succeeds" , ( t ) => {
276
- t . deepEqual ( Merge ( {
280
+ assert . deepEqual ( Merge ( {
277
281
} , {
278
282
eleventy : Object . freeze ( {
279
283
key2 : "b"
@@ -287,7 +291,7 @@ test("Merge with frozen source object (1 level deep) succeeds", (t) => {
287
291
288
292
289
293
test ( "Merge with frozen source object (1 level deep, mixed) succeeds" , ( t ) => {
290
- t . deepEqual ( Merge ( {
294
+ assert . deepEqual ( Merge ( {
291
295
eleventy : {
292
296
key1 : "a"
293
297
}
0 commit comments