import { isEqualDeep } from '../isEqualDeep'; describe( 'isEqualDeep', () => { test( 'can check if 2 arrays are deeply equal or not.', () => { const array1 = [ 1, [ 2, 3 ] ]; const array2 = [ 1, [ 2, 3 ] ]; const array3 = [ 1, [ 2, 4 ] ]; expect( isEqualDeep( array1, array2 ) ).toBe( true ); expect( isEqualDeep( array1, array3 ) ).toBe( false ); } ); test( 'can check if 2 objects are deeply equal or not.', () => { const object1 = { a: 1, b: { c: 2, d: true, e: [ 1, 2 ] } }; const object2 = { a: 1, b: { c: 2, d: true, e: [ 1, 2 ] } }; const object3 = { a: 1, b: { c: 2, d: true, e: [ 1, 10 ] } }; expect( isEqualDeep( object1, object2 ) ).toBe( true ); expect( isEqualDeep( object1, object3 ) ).toBe( false ); } ); test( 'can handle complex objects.', () => { const object1 = { a: 1, b: true, c: 'x', d: [ true, true ], e: { e1: 1, e2: [ 1, 2, 3 ] }, }; const object2 = { a: 1, b: true, c: 'x', d: [ true, true ], e: { e1: 1, e2: [ 1, 2, 3 ] }, }; const object3 = { a: 1, b: true, c: 'x', d: [ true, true ], e: { e1: 1, e2: [ 1, 2, 10 ] }, }; expect( isEqualDeep( object1, object2 ) ).toBe( true ); expect( isEqualDeep( object1, object3 ) ).toBe( false ); } ); } );