test.govlab/context/core/selectors/field.selector.test.ts
test.govlab/context/core/selectors/field.selector.test.ts is a file in Codebase Testing. 19 lines of code and 0 definitions.
import { fieldValue, valuesAt } from "@govlab/context/core/selectors/field.selector.ts";
import assert from "node:assert/strict";
import { test } from "vitest";
test("fieldValue reads a dotted path and yields undefined past a missing step", () => {
assert.equal(fieldValue({ a: { b: "c" } }, "a.b"), "c");
assert.equal(fieldValue({ a: "flat" }, "a.b"), undefined);
assert.equal(fieldValue(null, "a"), undefined);
});
test("fieldValue steps into every entry of a record list and skips entries without the key", () => {
const record = { steps: [{ record: "a" }, { stage: "s" }, { record: "b" }] };
assert.deepEqual(fieldValue(record, "steps.record"), ["a", "b"]);
assert.deepEqual(fieldValue({ steps: [] }, "steps.record"), []);
});
test("valuesAt answers a string, a string list or nothing as a list", () => {
assert.deepEqual(valuesAt({ a: "one" }, "a"), ["one"]);
assert.deepEqual(valuesAt({ a: ["one", "two"] }, "a"), ["one", "two"]);
assert.deepEqual(valuesAt({ a: { b: 1 } }, "a"), []);
assert.deepEqual(valuesAt({ steps: [{ record: "a" }] }, "steps.record"), ["a"]);
});