test.build/core/resolvers/route.resolver.test.ts
test.build/core/resolvers/route.resolver.test.ts is a file in Codebase Testing. 44 lines of code and 0 definitions.
import { GUIDE, TERMS } from "../converters/site.fixture.ts";
import { describe, expect, it } from "vitest";
import {
jsonPath,
jsonPathOf,
ledgerFile,
sitemapPartFiles,
sitemapPartRoute,
markdownFileOf,
markdownPathOf,
} from "@banes-lab/build-scripts/core/resolvers/route.resolver.ts";
import { JSON_ROUTE } from "@banes-lab/build-scripts/configuration/constants/site.constants.ts";
import { relativePath } from "@ssot/paths";
describe("jsonPath and jsonPathOf", () => {
it("places a page payload under the json route by id and a tab payload beneath its page", () => {
expect(jsonPath(TERMS)).toBe(`${JSON_ROUTE}terms`);
expect(jsonPath(GUIDE)).toBe(`${JSON_ROUTE}terms/guide`);
expect(jsonPathOf("terms")).toBe(jsonPath(TERMS));
});
});
describe("markdownPathOf and markdownFileOf", () => {
it("adds the md suffix to a route and names the home alternate index", () => {
expect(markdownPathOf("/terms/guide")).toBe("/terms/guide.md");
expect(markdownPathOf("/")).toBe("/index.md");
expect(markdownFileOf("/")).toBe("index.md");
});
});
describe("sitemapPartRoute and sitemapPartFiles", () => {
it("keeps the first part's route, numbers the next ones, and lists the parts that exist in order", () => {
expect(sitemapPartRoute("/sitemap-catalog.xml", 0)).toBe("/sitemap-catalog.xml");
expect(sitemapPartRoute("/sitemap-catalog.xml", 2)).toBe("/sitemap-catalog-3.xml");
const present = new Set(["sitemap-catalog.xml", "sitemap-catalog-2.xml"]);
expect(sitemapPartFiles("/sitemap-catalog.xml", (file) => present.has(file))).toStrictEqual([
"sitemap-catalog.xml",
"sitemap-catalog-2.xml",
]);
expect(sitemapPartFiles("/sitemap-none.xml", () => false)).toStrictEqual([]);
});
});
describe("ledgerFile", () => {
it("names the sitemap ledger at its path key", () => {
expect(ledgerFile().split("\\").join("/")).toContain(relativePath("app.sitemap"));
});
});