import { deepEqual } from '../util' import { deepMerge } from '../util' describe('deepMerge', () => { test('deepMerge({}, {a: 1}, {b: 2}) should return {a: 1, b: 2}', () => { expect(deepMerge({}, { a: 1 }, { b: 2 })).toEqual({ a: 1, b: 2 }) }) test('deepMerge(null, [1,2,3]) should equal [1,2,3]', () => { expect(deepMerge(null, [1, 2, 3])).toEqual([1, 2, 3]) }) test('deepMerge({a: {b: 1, c:2}}, {a: {b: 3}}) should equal {a: {b: 3, c: 2}}', () => { expect(deepMerge({ a: { b: 1, c: 2 } }, { a: { b: 3 } })).toEqual({ a: { b: 3, c: 2 }, }) }) test('deepMerge({a: {b: 1, c:2}}, {a: {b: 3}}) should equal {a: {b: 3, c: 2}} with deep equal', () => { expect( deepEqual(deepMerge({ a: { b: 1, c: 2 } }, { a: { b: 3 } }), { a: { b: 3, c: 2 }, }), ).toBeTruthy() }) test('Test that merging lists has Set semantics', () => { const merge = deepMerge(['a', 'b'], ['b', 'c']) expect(merge).toHaveLength(3) expect(merge).toContain('a') expect(merge).toContain('b') expect(merge).toContain('c') }) })