UNPKG

siegel

Version:

Web application development ecosystem

1 lines 2.05 kB
import"../../../global.d";import e,{SYMBOL__OBJECT_FIELD_REMOVED as l,SYMBOL__VALUES_EQUAL as _}from"./index.js";describe("common/deep/diff",()=>{test("big structure comparing",()=>{expect(e({will_be_removed:"some_str",will_be_removed_undef:void 0,will_be_changed:"some_str",will_be_same:"same",will_be_undef:null,will_be_null:void 0,will_be_same_undef:void 0,will_be_same_obj:{will_be_same:"same",will_be_same_obj:{will_be_same:"same"}},will_be_changed_obj:{will_be_changed:"some_str",will_be_same_array:[1,{}]},will_be_same_array:[[],[],void 0,null],will_be_changed_array:[1,{will_be_changed:12},[],null,void 0]},{will_be_changed:"changed",will_be_same:"same",will_be_undef:void 0,will_be_null:null,will_be_same_undef:void 0,will_be_same_obj:{will_be_same:"same",will_be_same_obj:{will_be_same:"same"}},will_be_changed_obj:{will_be_changed:"changed",will_be_same_array:[1,{}]},will_be_same_array:[[],[],void 0,null],will_be_changed_array:[1,{will_be_changed:120},[],void 0,!1,null,[]],will_be_added:[{}]})).toEqual({will_be_removed:l,will_be_removed_undef:l,will_be_changed:"changed",will_be_undef:void 0,will_be_null:null,will_be_changed_obj:{will_be_changed:"changed"},will_be_changed_array:[_,{will_be_changed:120},_,void 0,!1,null,[]],will_be_added:[{}]})}),test("objects equals",()=>{expect(e({a:1,b:null},{a:1,b:null})).toBe(_)}),test("arrays equals",()=>{expect(e([1,2,void 0,null],[1,2,void 0,null])).toBe(_)}),test("arrays changed elements",()=>{expect(e([1,2,!1],[1,4,!1,{}])).toEqual([_,4,_,{}])}),test("array change nested iterables",()=>{expect(e([{a:1},{b:0}],[{a:2},{b:0}])).toEqual([{a:2},_])}),test("custom placeholders",()=>{expect(e({a:2,b:[1]},{b:[1,2]},{valueForEqualArrElement:"__EQUAL__",valueForRemovedObjField:"__REMOVED__"})).toEqual({a:"__REMOVED__",b:["__EQUAL__",2]})}),test("hande complex types",()=>{let l=new Date,_=new Date(1e3);expect(e({a:new Date(0),b:l,c:new Set([1,2,3])},{a:_,b:l,c:new Set([1,2,3])},{complexTypesIsEqual:(e,l)=>e instanceof Date&&e.valueOf()==l.valueOf()})).toEqual({a:_,c:new Set([1,2,3])})})});