import * as utils from '../index'; describe('reducers utils', () => { it('observer changes should BE THE SAME - return false', () => { expect(utils.observeChanges( {}, {}, )).toBe(false); expect(utils.observeChanges( [], [], )).toBe(false); expect(utils.observeChanges( [1, 1, 1], [1, 1, 1], )).toBe(false); expect(utils.observeChanges( 'a', 'a', )).toBe(false); expect(utils.observeChanges( { one: 1 }, { one: 1 }, )).toBe(false); expect(utils.observeChanges( { one: { two: 1 } }, { one: { two: 1 } }, )).toBe(false); expect(utils.observeChanges( { one: { two: [1, 2, 3] } }, { one: { two: [1, 2, 3] } }, )).toBe(false); expect(utils.observeChanges( { one: { two: [1, { three: 1 }, 3] } }, { one: { two: [1, { three: 1 }, 3] } }, )).toBe(false); expect(utils.observeChanges( { one: { two: [1, { three: 1 }, { four: 3, five: { six: 3 } }] } }, { one: { two: [1, { three: 1 }, { four: 3, five: { six: 3 } }] } }, )).toBe(false); }); it('observer should NOT be the same - return true', () => { expect(utils.observeChanges( null, {}, )).toBe(true); expect(utils.observeChanges( { one: 1 }, {}, )).toBe(true); expect(utils.observeChanges( { one: 1, three: 3 }, { one: 1, two: 2 }, )).toBe(true); expect(utils.observeChanges( [{}, {}], [], )).toBe(true); expect(utils.observeChanges( [1, 1, 1], [1, 1], )).toBe(true); expect(utils.observeChanges( 'a', 'b', )).toBe(true); expect(utils.observeChanges( ['a'], ['b'], )).toBe(true); expect(utils.observeChanges( 1, '1', )).toBe(true); expect(utils.observeChanges( { one: 1 }, { one: 2 }, )).toBe(true); expect(utils.observeChanges( { one: { two: 1 } }, { one: { two: 2 } }, )).toBe(true); expect(utils.observeChanges( { one: { two: [1, 2, 3] } }, { one: { two: [1, 1, 3] } }, )).toBe(true); expect(utils.observeChanges( { one: { two: [1, { three: 1 }, 3] } }, { one: { two: [1, { three: 2 }, 3] } }, )).toBe(true); expect(utils.observeChanges( { one: { two: [1, { three: 1 }, { four: 3, five: { six: 3 } }] } }, { one: { two: [1, { three: 1 }, { four: 3, five: { six: 1 } }] } }, )).toBe(true); expect(utils.observeChanges( { one: { two: [1, { three: 1 }, { four: 3, five: { sixxx: 3 } }] } }, { one: { two: [1, { three: 1 }, { four: 3, five: { six: 1 } }] } }, )).toBe(true); }); it('observeChanges test filter', () => { expect(utils.observeChanges( { one: { two: 2, three: 3 } }, { one: { two: 2, three: 4 } }, { one: ['two'] }, )).toBe(false); expect(utils.observeChanges( { one: { two: 2, three: 3 } }, { one: { two: 1, three: 3 } }, { one: ['two'] }, )).toBe(true); }); });