test.build/core/selectors/base.selector.test.ts
test.build/core/selectors/base.selector.test.ts is a file in Codebase Testing. 29 lines of code and 0 definitions.
import { describe, expect, it } from "vitest";
import {
entriesAt,
isRecord,
numberAt,
recordAt,
textAt,
} from "@banes-lab/build-scripts/core/selectors/base.selector.ts";
const SOURCE = { count: 3, items: [1, 2], name: "n", nested: { a: 1 } };
describe("isRecord", () => {
it("accepts an object and refuses null and a primitive", () => {
expect(isRecord(SOURCE)).toBe(true);
expect(isRecord(null)).toBe(false);
expect(isRecord("x")).toBe(false);
});
});
describe("textAt, numberAt, recordAt and entriesAt", () => {
it("reads a field of the asked type and answers the empty value for anything else", () => {
expect(textAt(SOURCE, "name")).toBe("n");
expect(textAt(SOURCE, "count")).toBeNull();
expect(numberAt(SOURCE, "count")).toBe(3);
expect(numberAt(SOURCE, "name")).toBeNull();
expect(recordAt(SOURCE, "nested")).toStrictEqual({ a: 1 });
expect(recordAt(SOURCE, "items")).toStrictEqual([1, 2]);
expect(recordAt(SOURCE, "name")).toBeNull();
expect(entriesAt(SOURCE, "items")).toStrictEqual([1, 2]);
expect(entriesAt(SOURCE, "name")).toStrictEqual([]);
});
});