UNPKG

apphouse

Version:

Component library for React that uses observable state management and theme-able components.

38 lines (28 loc) 1.21 kB
import { compareKeysDeep } from './compareKeysDeep'; describe('compareKeysDeep', () => { it('should return an empty array for two identical objects', () => { const obj1 = { a: 1, b: 2, c: { d: 3 } }; const obj2 = { a: 1, b: 2, c: { d: 3 } }; expect(compareKeysDeep(obj1, obj2)).toEqual([]); }); it('should return missing keys when the second object is missing keys', () => { const obj1 = { a: 1, b: 2, c: { d: 3 } }; const obj2 = { a: 1, c: { d: 3 } }; expect(compareKeysDeep(obj1, obj2)).toEqual(['b']); }); it('should return missing keys at nested levels', () => { const obj1 = { a: { b: 2, c: { d: 3 } }, e: 4 }; const obj2 = { a: { b: 2 } }; expect(compareKeysDeep(obj1, obj2)).toEqual(['a.c.d', 'e']); }); it('should return missing keys at very deep nested levels', () => { const obj1 = { a: { b: 2, c: { d: 3, e: 5, f: 6, k: { l: 4 } } }, e: 4 }; const obj2 = { a: { b: 2 } }; expect(compareKeysDeep(obj1, obj2)).toEqual(['a.c.d,e,f,k.l', 'e']); }); it('should return an empty array if both objects are empty', () => { const obj1 = {}; const obj2 = {}; expect(compareKeysDeep(obj1, obj2)).toEqual([]); }); });