test.web/core/resolvers/specifier.resolver.test.ts

test.web/core/resolvers/specifier.resolver.test.ts is a file in Codebase Testing. 26 lines of code and 0 definitions.

import { describe, expect, it } from "vitest";
import { packageFileOf, packageTargetOf } from "@banes-lab/web/core/resolvers/specifier.resolver.ts";
import { ANATOMY_TREE_DECLARATIONS } from "@banes-lab/web/core/registries/anatomy.tree.registry.ts";
import { qualifiedPath } from "@banes-lab/web/core/converters/folder.converter.ts";

const DOCS = ANATOMY_TREE_DECLARATIONS.find((declaration) => declaration.packageName === "@govlab/docs");
const MAIN = DOCS?.exports.find((entry) => entry.key === ".");
const RELATIVE = "./";

describe("packageTargetOf", () => {
    it("maps a package specifier through the owning package's exports to a path in its tree", () => {
        const main = MAIN?.target.slice(RELATIVE.length) ?? "";
        expect(main.length).toBeGreaterThan(0);
        expect(packageTargetOf("@govlab/docs", ANATOMY_TREE_DECLARATIONS)).toStrictEqual([{ path: main, tab: "docs" }]);
    });

    it("finds no target for a package no tree declares, or a name that only shares a prefix", () => {
        expect(packageTargetOf("vitest", ANATOMY_TREE_DECLARATIONS)).toStrictEqual([]);
        expect(packageTargetOf("@govlab/docs-extra", ANATOMY_TREE_DECLARATIONS)).toStrictEqual([]);
    });
});

describe("packageFileOf", () => {
    it("returns the first target that exists, trying a .js specifier's .ts source", () => {
        const main = qualifiedPath("docs", MAIN?.target.slice(RELATIVE.length) ?? "");
        expect(packageFileOf("@govlab/docs", (path) => (path === main ? path : null))).toBe(main);
        expect(packageFileOf("@govlab/docs", () => null)).toBeNull();
        expect(packageFileOf("vitest", (path) => path)).toBeNull();
    });
});