Skip to content

Commit 767bb5a

Browse files
committed
test(utils-test): cover deepClone()
1 parent 5e585d4 commit 767bb5a

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/__tests__/utils-test.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
getOrderIndependentHash,
99
arrayRemove,
1010
revertArrayChange,
11+
deepClone,
1112
} from '../utils';
1213

1314
describe('utils', () => {
@@ -172,4 +173,42 @@ describe('utils', () => {
172173
expect(revertedEdited).toEqual([1, 2, 3, 5]);
173174
expect(revertedArray).toEqual([[1, 2], [1, 2]]);
174175
});
176+
177+
it('deepClone()', () => {
178+
const obj = {
179+
str: '123',
180+
num: 123,
181+
reg: /123/,
182+
arr: [1, 2, 3],
183+
date: new Date('2019-01-05'),
184+
obj: {
185+
a: {
186+
b: 1,
187+
},
188+
},
189+
};
190+
191+
const clone = deepClone(obj);
192+
expect(obj).toEqual({
193+
arr: [1, 2, 3],
194+
date: new Date('2019-01-05T00:00:00.000Z'),
195+
num: 123,
196+
obj: { a: { b: 1 } },
197+
reg: /123/,
198+
str: '123',
199+
});
200+
expect(clone === obj).toBeFalsy();
201+
expect(clone).toEqual({
202+
arr: [1, 2, 3],
203+
date: new Date('2019-01-05T00:00:00.000Z'),
204+
num: 123,
205+
obj: { a: { b: 1 } },
206+
reg: /123/,
207+
str: '123',
208+
});
209+
clone.date = new Date('2019-01-06');
210+
clone.obj.a.b = 2;
211+
expect(obj.date).toEqual(new Date('2019-01-05T00:00:00.000Z'));
212+
expect(obj.obj.a.b).toBe(1);
213+
});
175214
});

0 commit comments

Comments
 (0)