test.build/core/formatters/index.formatter.test.ts

test.build/core/formatters/index.formatter.test.ts is a file in Codebase Testing. 53 lines of code and 0 definitions.

import { describe, expect, it } from "vitest";
import { renderIndex, renderSiteIndex } from "@banes-lab/build-scripts/core/formatters/index.formatter.ts";

const ENTRY = {
    bytes: 1,
    fingerprint: "f",
    href: null,
    json: "https://x.test/json/e",
    kind: "section",
    markdown: null,
    ref: "e",
    summary: "E.",
    title: "E",
};

describe("renderIndex", () => {
    it("lists each entry by its best leaf with its summary", () => {
        const identity = {
            address: { json: "/json/api/x", markdown: "/api/x.md" },
            href: "/x",
            kind: "index",
            ref: "api:x",
            summary: "An index.",
            title: "X",
        };
        expect(renderIndex(identity, { ref: "api:x", title: "X" }, [ENTRY], "https://x.test")).toContain(
            "- [E](https://x.test/json/e): E.",
        );
    });
});

describe("renderSiteIndex", () => {
    it("names each address pattern with its JSON and Markdown forms", () => {
        const site = renderSiteIndex(
            {
                build: "b1",
                canonical: "The JSON files are canonical.",
                collections: [],
                consent: "Yes.",
                documents: [],
                grammar: [{ json: "/json/api", level: "The site", markdown: "/api.md" }],
                pages: [ENTRY],
                queries: [],
                summary: "S.",
                title: "Site",
                trees: [],
                updated: null,
                version: 2,
            },
            "https://x.test",
        );
        expect(site).toContain("The site: `/json/api` or `/api.md`");
        expect(site).toContain("The JSON files are canonical.");
        expect(site).toContain("Catalog version 2, build b1.");
    });
});