1
0

run npm install to generate a package lock

This commit is contained in:
sashinexists
2024-12-07 13:18:31 +11:00
parent e7d08a91b5
commit 23437d228e
2501 changed files with 290663 additions and 0 deletions

View 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);
}