1- import { deepEqual } from '../object' ;
1+ import { deepEqual , difference } from '../object' ;
22
33test ( 'deepEqual()' , async ( ) => {
44 // Primitive values (true)
@@ -56,6 +56,7 @@ test('deepEqual()', async () => {
5656 expect ( deepEqual ( { a : [ 1 , 2 ] , b : 3 } , { a : [ 1 , 2 ] , b : 3 } , true ) ) . toBe ( true ) ;
5757
5858 // Object strict order (false)
59+ expect ( deepEqual ( { a : 1 } , { b : 2 } , true ) ) . toBe ( false ) ;
5960 expect ( deepEqual ( { a : 1 , b : 2 } , { b : 2 , a : 1 } , true ) ) . toBe ( false ) ;
6061 expect ( deepEqual ( { a : 1 , b : { c : 3 } } , { b : { c : 3 } , a : 1 } , true ) ) . toBe ( false ) ;
6162 expect ( deepEqual ( { a : [ 1 , 2 ] , b : 3 } , { b : 3 , a : [ 1 , 2 ] } , true ) ) . toBe ( false ) ;
@@ -68,7 +69,54 @@ test('deepEqual()', async () => {
6869 expect ( deepEqual ( { a : [ 1 , 2 ] , b : 3 } , { b : 3 , a : [ 1 , 2 ] } , false ) ) . toBe ( true ) ;
6970
7071 // Object unordered (false)
72+ expect ( deepEqual ( { b : 2 } , { b : 3 } , false ) ) . toBe ( false ) ;
7173 expect ( deepEqual ( { a : 1 , b : 2 } , { a : 1 , b : 3 } , false ) ) . toBe ( false ) ;
7274 expect ( deepEqual ( { a : 1 , b : 2 } , { a : 1 } ) ) . toBe ( false ) ;
7375 expect ( deepEqual ( { a : 1 } , { a : 1 , b : 2 } ) ) . toBe ( false ) ;
7476} ) ;
77+
78+ test ( 'difference()' , async ( ) => {
79+ expect ( difference ( { } , { } , { recursive : false , ignoreOrder : false } ) ) . toEqual ( { } ) ;
80+ expect ( difference ( { a : 1 } , { a : 1 } , { recursive : false , ignoreOrder : false } ) ) . toEqual ( { } ) ;
81+ expect ( difference ( { a : 1 } , { a : 2 } , { recursive : false , ignoreOrder : false } ) ) . toEqual ( { a : 2 } ) ;
82+ expect ( difference ( { a : 1 , b : 2 } , { a : 1 } , { recursive : false , ignoreOrder : false } ) ) . toEqual ( { b : undefined } ) ;
83+ expect ( difference ( { a : 1 } , { a : 1 , b : 2 } , { recursive : false , ignoreOrder : false } ) ) . toEqual ( { b : 2 } ) ;
84+ expect (
85+ difference (
86+ { a : { b : 2 , c : { d : 3 , e : 4 } } } ,
87+ { a : { b : 2 , c : { d : 3 , e : 4 } } } ,
88+ { recursive : false , ignoreOrder : false } ,
89+ ) ,
90+ ) . toEqual ( { } ) ;
91+ expect (
92+ difference (
93+ { a : { b : 2 , c : { d : 3 , e : 4 } } } ,
94+ { a : { b : 3 , c : { d : 3 , e : 4 } } } ,
95+ { recursive : false , ignoreOrder : false } ,
96+ ) ,
97+ ) . toEqual ( { a : { b : 3 , c : { d : 3 , e : 4 } } } ) ;
98+ expect (
99+ difference (
100+ { a : { b : 2 , c : { d : 3 , e : 4 } } } ,
101+ { a : { b : 2 , c : { d : 3 , e : 5 } } } ,
102+ { recursive : false , ignoreOrder : false } ,
103+ ) ,
104+ ) . toEqual ( { a : { b : 2 , c : { d : 3 , e : 5 } } } ) ;
105+ expect ( difference ( { a : [ 1 , 2 , 3 ] } , { a : [ 1 , 2 , 3 ] } , { recursive : false , ignoreOrder : false } ) ) . toEqual ( { } ) ;
106+ expect ( difference ( { a : [ 1 , 2 , 3 ] } , { a : [ 3 , 2 , 1 ] } , { recursive : false , ignoreOrder : false } ) ) . toEqual ( {
107+ a : [ 3 , 2 , 1 ] ,
108+ } ) ;
109+ expect ( difference ( { a : [ 1 , 2 , 3 ] } , { a : [ 4 , 5 , 6 ] } , { recursive : false , ignoreOrder : false } ) ) . toEqual ( {
110+ a : [ 4 , 5 , 6 ] ,
111+ } ) ;
112+
113+ expect ( difference ( { a : [ 1 , 2 , 3 ] } , { a : [ 3 , 2 , 1 ] } , { recursive : false , ignoreOrder : true } ) ) . toEqual ( { } ) ;
114+
115+ expect (
116+ difference (
117+ { a : { b : 2 , c : { d : 3 , e : 4 } } } ,
118+ { a : { b : 2 , c : { d : 3 , e : 5 } } } ,
119+ { recursive : true , ignoreOrder : false } ,
120+ ) ,
121+ ) . toEqual ( { a : { c : { e : 5 } } } ) ;
122+ } ) ;
0 commit comments