run npm install to generate a package lock
This commit is contained in:
59
node_modules/@weborigami/async-tree/test/drivers/MapTree.test.js
generated
vendored
Normal file
59
node_modules/@weborigami/async-tree/test/drivers/MapTree.test.js
generated
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
import assert from "node:assert";
|
||||
import { describe, test } from "node:test";
|
||||
import MapTree from "../../src/drivers/MapTree.js";
|
||||
import * as symbols from "../../src/symbols.js";
|
||||
|
||||
describe("MapTree", () => {
|
||||
test("can get the keys of the tree", async () => {
|
||||
const fixture = createFixture();
|
||||
assert.deepEqual(Array.from(await fixture.keys()), ["a", "b", "c"]);
|
||||
});
|
||||
|
||||
test("can get the value for a key", async () => {
|
||||
const fixture = createFixture();
|
||||
const a = await fixture.get("a");
|
||||
assert.equal(a, 1);
|
||||
});
|
||||
|
||||
test("sets parent on subtrees", async () => {
|
||||
const map = new Map([["more", new Map([["a", 1]])]]);
|
||||
const fixture = new MapTree(map);
|
||||
const more = await fixture.get("more");
|
||||
assert.equal(more[symbols.parent], fixture);
|
||||
});
|
||||
|
||||
test("adds trailing slashes to keys for subtrees", async () => {
|
||||
const tree = new MapTree([
|
||||
["a", 1],
|
||||
["subtree", new MapTree([["b", 2]])],
|
||||
]);
|
||||
const keys = Array.from(await tree.keys());
|
||||
assert.deepEqual(keys, ["a", "subtree/"]);
|
||||
});
|
||||
|
||||
test("can retrieve values with optional trailing slash", async () => {
|
||||
const subtree = new MapTree([["b", 2]]);
|
||||
const tree = new MapTree([
|
||||
["a", 1],
|
||||
["subtree", subtree],
|
||||
]);
|
||||
assert.equal(await tree.get("a"), 1);
|
||||
assert.equal(await tree.get("a/"), 1);
|
||||
assert.equal(await tree.get("subtree"), subtree);
|
||||
assert.equal(await tree.get("subtree/"), subtree);
|
||||
});
|
||||
|
||||
test("getting an unsupported key returns undefined", async () => {
|
||||
const fixture = createFixture();
|
||||
assert.equal(await fixture.get("d"), undefined);
|
||||
});
|
||||
});
|
||||
|
||||
function createFixture() {
|
||||
const map = new Map([
|
||||
["a", 1],
|
||||
["b", 2],
|
||||
["c", 3],
|
||||
]);
|
||||
return new MapTree(map);
|
||||
}
|
||||
Reference in New Issue
Block a user