Files
sashinexists/node_modules/@weborigami/language/test/runtime/mergeTrees.test.js
2024-12-07 13:18:31 +11:00

51 lines
1023 B
JavaScript

import { Tree } from "@weborigami/async-tree";
import assert from "node:assert";
import { describe, test } from "node:test";
import mergeTrees from "../../src/runtime/mergeTrees.js";
describe("mergeTrees", () => {
test("merges trees", async () => {
const tree = await mergeTrees.call(
null,
{
a: 1,
b: 2,
},
{
b: 3,
c: 4,
}
);
// @ts-ignore
assert.deepEqual(await Tree.plain(tree), {
a: 1,
b: 3,
c: 4,
});
});
test("if all arguments are plain objects, result is a plain object", async () => {
const result = await mergeTrees.call(
null,
{
a: 1,
b: 2,
},
{
b: 3,
c: 4,
}
);
assert.deepEqual(result, {
a: 1,
b: 3,
c: 4,
});
});
test("if all arguments are arrays, result is an array", async () => {
const result = await mergeTrees.call(null, [1, 2], [3, 4]);
assert.deepEqual(result, [1, 2, 3, 4]);
});
});