6 changed files with 283 additions and 20 deletions
@ -1,7 +1,151 @@
@@ -1,7 +1,151 @@
|
||||
import { getObjectDiff } from "../src/object-diff"; |
||||
|
||||
describe("getObjectDiff", () => { |
||||
it("", () => { |
||||
expect(getObjectDiff(null, null)).toStrictEqual(null); |
||||
it("returns an empty diff if no objects are provided", () => { |
||||
expect(getObjectDiff(null, null)).toStrictEqual({ |
||||
type: "object", |
||||
status: "equal", |
||||
diff: [], |
||||
}); |
||||
}); |
||||
it("consider previous object as completely deleted if no next object is provided", () => { |
||||
expect( |
||||
getObjectDiff( |
||||
{ name: "joe", age: 54, hobbies: ["golf", "football"] }, |
||||
null |
||||
) |
||||
).toStrictEqual({ |
||||
type: "object", |
||||
status: "deleted", |
||||
diff: [ |
||||
{ |
||||
property: "name", |
||||
previousValue: "joe", |
||||
currentValue: undefined, |
||||
status: "deleted", |
||||
}, |
||||
{ |
||||
property: "age", |
||||
previousValue: 54, |
||||
currentValue: undefined, |
||||
status: "deleted", |
||||
}, |
||||
{ |
||||
property: "hobbies", |
||||
previousValue: ["golf", "football"], |
||||
currentValue: undefined, |
||||
status: "deleted", |
||||
}, |
||||
], |
||||
}); |
||||
}); |
||||
it("consider next object as completely added if no previous object is provided", () => { |
||||
expect( |
||||
getObjectDiff(null, { |
||||
name: "joe", |
||||
age: 54, |
||||
hobbies: ["golf", "football"], |
||||
}) |
||||
).toStrictEqual({ |
||||
type: "object", |
||||
status: "added", |
||||
diff: [ |
||||
{ |
||||
property: "name", |
||||
previousValue: undefined, |
||||
currentValue: "joe", |
||||
status: "added", |
||||
}, |
||||
{ |
||||
property: "age", |
||||
previousValue: undefined, |
||||
currentValue: 54, |
||||
status: "added", |
||||
}, |
||||
{ |
||||
property: "hobbies", |
||||
previousValue: undefined, |
||||
currentValue: ["golf", "football"], |
||||
status: "added", |
||||
}, |
||||
], |
||||
}); |
||||
}); |
||||
it("detects changed between two objects", () => { |
||||
expect( |
||||
getObjectDiff( |
||||
{ |
||||
id: 54, |
||||
user: { |
||||
name: "joe", |
||||
member: true, |
||||
hobbies: ["golf", "football"], |
||||
age: 66, |
||||
}, |
||||
}, |
||||
{ |
||||
id: 54, |
||||
user: { |
||||
name: "joe", |
||||
member: false, |
||||
hobbies: ["golf", "chess"], |
||||
age: 66, |
||||
}, |
||||
} |
||||
) |
||||
).toStrictEqual({ |
||||
type: "object", |
||||
status: "updated", |
||||
diff: [ |
||||
{ |
||||
property: "id", |
||||
previousValue: 54, |
||||
currentValue: 54, |
||||
status: "equal", |
||||
}, |
||||
{ |
||||
property: "user", |
||||
previousValue: { |
||||
name: "joe", |
||||
member: true, |
||||
hobbies: ["golf", "football"], |
||||
age: 66, |
||||
}, |
||||
currentValue: { |
||||
name: "joe", |
||||
member: false, |
||||
hobbies: ["golf", "chess"], |
||||
age: 66, |
||||
}, |
||||
status: "updated", |
||||
subPropertiesDiff: [ |
||||
{ |
||||
name: "name", |
||||
previousValue: "joe", |
||||
currentValue: "joe", |
||||
status: "equal", |
||||
}, |
||||
{ |
||||
name: "member", |
||||
previousValue: true, |
||||
currentValue: false, |
||||
status: "updated", |
||||
}, |
||||
{ |
||||
name: "hobbies", |
||||
previousValue: ["golf", "football"], |
||||
currentValue: ["golf", "chess"], |
||||
status: "updated", |
||||
}, |
||||
{ |
||||
name: "age", |
||||
previousValue: 66, |
||||
currentValue: 66, |
||||
status: "equal", |
||||
}, |
||||
], |
||||
}, |
||||
], |
||||
}); |
||||
}); |
||||
}); |
||||
|
@ -1,10 +1,10 @@
@@ -1,10 +1,10 @@
|
||||
import { isEqual, hasNestedValues } from "../src/utils"; |
||||
// import { isEqual, hasNestedValues } from "../src/utils";
|
||||
|
||||
describe("isEqual", () => { |
||||
it("", () => { |
||||
expect(isEqual(null, null)).toStrictEqual(null); |
||||
}); |
||||
it("", () => { |
||||
expect(hasNestedValues(null)).toStrictEqual(null); |
||||
}); |
||||
}); |
||||
// describe("isEqual", () => {
|
||||
// it("", () => {
|
||||
// expect(isEqual(null, null)).toStrictEqual(null);
|
||||
// });
|
||||
// it("", () => {
|
||||
// expect(hasNestedValues(null)).toStrictEqual(null);
|
||||
// });
|
||||
// });
|
||||
|
Loading…
Reference in new issue