Skip to content

Commit 3d6d4b3

Browse files
committed
Fixed replacing object with null #7
1 parent 36413a8 commit 3d6d4b3

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ export default function diff(
1818
});
1919
} else if (
2020
obj[key] &&
21+
newObj[key] &&
2122
typeof obj[key] === "object" &&
23+
typeof newObj[key] === "object" &&
2224
!richTypes[Object.getPrototypeOf(obj[key]).constructor.name]
2325
) {
2426
const nestedDiffs = diff(obj[key], newObj[key]);

tests/basic.js

+20
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,24 @@ test("remove raw value", () => {
2929
]);
3030
});
3131

32+
test("replace object with null", () => {
33+
assert.equal(diff({ object: { test: true } }, { object: null }), [
34+
{
35+
type: "CHANGE",
36+
path: ["object"],
37+
value: null,
38+
},
39+
]);
40+
});
41+
42+
test("replace object with other value", () => {
43+
assert.equal(diff({ object: { test: true } }, { object: "string" }), [
44+
{
45+
type: "CHANGE",
46+
path: ["object"],
47+
value: "string",
48+
},
49+
]);
50+
});
51+
3252
test.run();

0 commit comments

Comments
 (0)