┌─ TS ───────────────────────────────────────────────────────────────────────┐
│ import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs"; │
│ import { join } from "node:path"; │
│ import { tmpdir } from "node:os"; │
│ import { afterAll, beforeAll, describe, expect, it } from "vitest"; │
│ import { readManifests, registerOf } from "./registers"; │
│ │
│ let dir: string; │
│ beforeAll(() => { │
│ dir = mkdtempSync(join(tmpdir(), "reg-")); │
│ mkdirSync(join(dir, "wowsim-stats/api"), { recursive: true }); │
│ mkdirSync(join(dir, "windows"), { recursive: true }); │
│ mkdirSync(join(dir, "nix"), { recursive: true }); │
│ writeFileSync(join(dir, "wowsim-stats/dir.yml"), 'register: docs\ntitle: "wowsim │
│ -stats"\n'); │
│ writeFileSync(join(dir, "windows/dir.yml"), "register: reference\n"); │
│ }); │
│ afterAll(() => rmSync(dir, { recursive: true, force: true })); │
│ │
│ describe("registers", () => { │
│ it("resolves the nearest ancestor manifest", () => { │
│ const m = readManifests(dir); │
│ expect(registerOf("wowsim-stats/api/simulations", m)).toEqual({ │
│ register: "docs", │
│ root: "wowsim-stats", │
│ title: "wowsim-stats", │
│ }); │
│ expect(registerOf("windows/tss", m).register).toBe("reference"); │
│ }); │
│ │
│ it("defaults unmarked subtrees to notes", () => { │
│ const m = readManifests(dir); │
│ expect(registerOf("nix/flakes", m)).toEqual({ register: "notes", root: null, t │
│ itle: null }); │
│ expect(registerOf("orphan", m).register).toBe("notes"); │
│ }); │
│ │
│ it("rejects unknown registers", () => { │
│ writeFileSync(join(dir, "nix/dir.yml"), "register: blog\n"); │
│ expect(() => readManifests(dir)).toThrow(/register must be/); │
│ rmSync(join(dir, "nix/dir.yml")); │
│ }); │
│ }); │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ TS ─────────────────────────────────┐
│ import { mkdtempSync, mkdirSync, rmSync, wri │
│ teFileSync } from "node:fs"; │
│ import { join } from "node:path"; │
│ import { tmpdir } from "node:os"; │
│ import { afterAll, beforeAll, describe, expe │
│ ct, it } from "vitest"; │
│ import { readManifests, registerOf } from ". │
│ /registers"; │
│ │
│ let dir: string; │
│ beforeAll(() => { │
│ dir = mkdtempSync(join(tmpdir(), "reg-")); │
│ mkdirSync(join(dir, "wowsim-stats/api"), { │
│ recursive: true }); │
│ mkdirSync(join(dir, "windows"), { recursiv │
│ e: true }); │
│ mkdirSync(join(dir, "nix"), { recursive: t │
│ rue }); │
│ writeFileSync(join(dir, "wowsim-stats/dir. │
│ yml"), 'register: docs\ntitle: "wowsim-stats │
│ "\n'); │
│ writeFileSync(join(dir, "windows/dir.yml") │
│ , "register: reference\n"); │
│ }); │
│ afterAll(() => rmSync(dir, { recursive: true │
│ , force: true })); │
│ │
│ describe("registers", () => { │
│ it("resolves the nearest ancestor manifest │
│ ", () => { │
│ const m = readManifests(dir); │
│ expect(registerOf("wowsim-stats/api/simu │
│ lations", m)).toEqual({ │
│ register: "docs", │
│ root: "wowsim-stats", │
│ title: "wowsim-stats", │
│ }); │
│ expect(registerOf("windows/tss", m).regi │
│ ster).toBe("reference"); │
│ }); │
│ │
│ it("defaults unmarked subtrees to notes", │
│ () => { │
│ const m = readManifests(dir); │
│ expect(registerOf("nix/flakes", m)).toEq │
│ ual({ register: "notes", root: null, title: │
│ null }); │
│ expect(registerOf("orphan", m).register) │
│ .toBe("notes"); │
│ }); │
│ │
│ it("rejects unknown registers", () => { │
│ writeFileSync(join(dir, "nix/dir.yml"), │
│ "register: blog\n"); │
│ expect(() => readManifests(dir)).toThrow │
│ (/register must be/); │
│ rmSync(join(dir, "nix/dir.yml")); │
│ }); │
│ }); │
└──────────────────────────────────────────────┘