UNPKG

@turbox3d/shared

Version:

turbox shared internal utility

157 lines (151 loc) 3.72 kB
import { bind, shallowEqual, remove } from '../common'; import { deepMerge } from '../deep-merge'; describe('utils -> common', () => { it('deepMerge', () => { const obj = deepMerge({ name: { test: 'xxx', dd: false, obj: { name: 'x11', c: 'xxdf' }, arr: ['xxx', 'vvv'], und: undefined, testnull: null, objarr: [{ n: 'x', a: 23 }, { n: 'cv', a: 223 }] }, dataList: [{ name: '1', age: 2 }, { name: '1', age: 2 }] }, { name: { test: 'xxx', dd: false, num: 2.342, obj: { name: 'ddf', c: 'xxdf', }, arr: ['xxx', 'vvv'], und: undefined, testnull: null, objarr: [{ n: 'x', a: 23 }, { n: 'cv', a: 223 }] }, dataList: [{ name: '1', age: 2 }, { name: '1', age: 3 }, { name: '12', age: 4 }] }); expect(obj).toEqual({ name: { test: 'xxx', dd: false, num: 2.342, obj: { name: 'ddf', c: 'xxdf', }, arr: ['xxx', 'vvv'], und: undefined, testnull: null, objarr: [{ n: 'x', a: 23 }, { n: 'cv', a: 223 }] }, dataList: [{ name: '1', age: 2 }, { name: '1', age: 3 }, { name: '12', age: 4 }] }); }); it('deepMergeClone', () => { const obj = deepMerge({ name: { test: 'xxx', dd: false, obj: { name: 'x11', c: 'xxdf' }, arr: ['xxx', 'vvv'], und: undefined, testnull: null, objarr: [{ n: 'x', a: 23 }, { n: 'cv', a: 223 }] }, dataList: [{ name: '1', age: 2 }, { name: '1', age: 2 }] }, { name: { test: 'xxx', dd: false, num: 2.342, obj: { name: 'ddf', c: 'xxdf', }, arr: ['xxx', 'vvv'], und: undefined, testnull: null, objarr: [{ n: 'x', a: 23 }, { n: 'cv', a: 223 }] }, dataList: [{ name: '1', age: 2 }, { name: '1', age: 3 }, { name: '12', age: 4 }] }, { clone: true }); expect(obj).toEqual({ name: { test: 'xxx', dd: false, num: 2.342, obj: { name: 'ddf', c: 'xxdf', }, arr: ['xxx', 'vvv'], und: undefined, testnull: null, objarr: [{ n: 'x', a: 23 }, { n: 'cv', a: 223 }] }, dataList: [{ name: '1', age: 2 }, { name: '1', age: 3 }, { name: '12', age: 4 }] }); }); it('shallowEqual', () => { const isEqual = shallowEqual({ name: { test: 'xxx', dd: false, num: 2.342, obj: { name: 'x11', c: 'xxdf' }, arr: ['xxx', 'vvv'], und: undefined, testnull: null, objarr: [{ n: 'x', a: 23 }, { n: 'cv', a: 223 }] }, dataList: [{ name: '1', age: 2 }, { name: '1', age: 2 }] }, { name: { test: 'xxx', dd: false, num: 2.342, obj: { name: 'x11', c: 'xxdf', }, arr: ['xxx', 'vvv'], und: undefined, testnull: null, objarr: [{ n: 'x', a: 23 }, { n: 'cv', a: 223 }] }, dataList: [{ name: '1', age: 2 }, { name: '1', age: 3 }] }); expect(isEqual).toBeFalsy(); }); it('bind', () => { const originalObj = { say() { return this.baz; } }; const targetObj = { baz: 'baz' }; const fn = bind(originalObj.say, targetObj); expect(fn()).toBe('baz'); }); it('remove', () => { const array = [1, 2, 3]; remove(array, 2); expect(array).toStrictEqual([1, 3]); }); });