43 lines
896 B
JavaScript
43 lines
896 B
JavaScript
import assert from "node:assert";
|
|
import { describe, test } from "node:test";
|
|
import { DeepObjectTree, Tree } from "../../src/internal.js";
|
|
import mergeDeep from "../../src/operations/deepMerge.js";
|
|
|
|
describe("mergeDeep", () => {
|
|
test("can merge deep", async () => {
|
|
const fixture = mergeDeep(
|
|
new DeepObjectTree({
|
|
a: {
|
|
b: 0, // Will be obscured by `b` below
|
|
c: {
|
|
d: 2,
|
|
},
|
|
},
|
|
}),
|
|
new DeepObjectTree({
|
|
a: {
|
|
b: 1,
|
|
c: {
|
|
e: 3,
|
|
},
|
|
f: 4,
|
|
},
|
|
})
|
|
);
|
|
assert.deepEqual(await Tree.plain(fixture), {
|
|
a: {
|
|
b: 1,
|
|
c: {
|
|
d: 2,
|
|
e: 3,
|
|
},
|
|
f: 4,
|
|
},
|
|
});
|
|
|
|
// Parent of a subvalue is the merged tree
|
|
const a = await fixture.get("a");
|
|
assert.equal(a.parent, fixture);
|
|
});
|
|
});
|