Skip to content

Commit 387c842

Browse files
committed
added test for #10
1 parent 85370eb commit 387c842

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

test/index.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,22 @@ describe('deepcopy', function() {
314314
assert(array[0].b === copiedArray[0].b);
315315
assert(array[1].a === copiedArray[1].a);
316316
assert(array[1].b === copiedArray[1].b);
317+
318+
const fn = function() {};
319+
320+
const functionInObject = [
321+
{ a: fn, b: 'b' },
322+
{ c: fn, d: 'd' },
323+
];
324+
325+
const copiedFunctionInObject = deepcopy(functionInObject);
326+
327+
assert(functionInObject !== copiedFunctionInObject);
328+
329+
assert(functionInObject[0].a !== copiedFunctionInObject[0].a);
330+
assert(functionInObject[0].b === copiedFunctionInObject[0].b);
331+
assert(functionInObject[1].c !== copiedFunctionInObject[1].c);
332+
assert(functionInObject[1].d === copiedFunctionInObject[1].d);
317333
});
318334

319335
it('can recursively copy from Array in Objct', function() {
@@ -335,6 +351,38 @@ describe('deepcopy', function() {
335351
assert(object.b[0] === copiedObject.b[0]);
336352
assert(object.a[1] === copiedObject.a[1]);
337353
assert(object.b[1] === copiedObject.b[1]);
354+
355+
const fn = function() {};
356+
357+
const functionInArray = {
358+
a: [fn, 1],
359+
b: [fn, 1],
360+
};
361+
362+
const copiedFunctionInArray = deepcopy(functionInArray);
363+
364+
assert(functionInArray !== copiedFunctionInArray);
365+
366+
assert(functionInArray.a[0] !== copiedFunctionInArray.a[0]);
367+
assert(functionInArray.a[1] === copiedFunctionInArray.a[1]);
368+
assert(functionInArray.b[0] !== copiedFunctionInArray.b[0]);
369+
assert(functionInArray.b[1] === copiedFunctionInArray.b[1]);
370+
371+
const functionInArrayInArray = {
372+
a: [
373+
[fn, 1],
374+
[fn, 2],
375+
]
376+
};
377+
378+
const copiedFunctionInArrayInArray = deepcopy(functionInArrayInArray);
379+
380+
assert(functionInArrayInArray !== copiedFunctionInArrayInArray);
381+
382+
assert(functionInArrayInArray.a[0][0] !== copiedFunctionInArrayInArray.a[0][0]);
383+
assert(functionInArrayInArray.a[0][1] === copiedFunctionInArrayInArray.a[0][1]);
384+
assert(functionInArrayInArray.a[1][0] !== copiedFunctionInArrayInArray.a[1][0]);
385+
assert(functionInArrayInArray.a[1][1] === copiedFunctionInArrayInArray.a[1][1]);
338386
});
339387

340388
it('can copy Class from Array and Object by customizer', function() {

0 commit comments

Comments
 (0)