/* Unit tests for llms 0789 covering its documented public contract and regression-sensitive edge cases. Not a contract source of truth — the module under test owns the authoritative behavior; fixtures are minimal scaffolding only. RFC-0789: initial tests for conditional agent discovery links in buildLlmsIndex. RFC-1311: carried legacy entry — Assert the fifth link — .well-known/ard.json (ARD v0.91 catalog) — present when enabled, absent when disabled. */ import { test, expect } from "vitest"; import { buildLlmsIndex } from "../llms.ts"; import type { SemanticSiteModel } from "../models.ts"; function makeSite(overrides: Partial = {}): SemanticSiteModel { return { baseUrl: "https://example.com", lang: "de", organization: { name: "Test Org", description: "A test organization.", url: "https://example.com", }, pages: [], ...overrides, }; } test("buildLlmsIndex: agent absent → all 5 agent discovery links present", () => { const output = buildLlmsIndex(makeSite()); expect(output).toContain("agent.json"); expect(output).toContain("api-catalog"); expect(output).toContain(".well-known/ard.json"); expect(output).toContain("mcp/server-card.json"); expect(output).toContain("agent.openapi.json"); }); test("buildLlmsIndex: agent.enabled true → all 5 agent discovery links present", () => { const output = buildLlmsIndex(makeSite({ agent: { enabled: true } })); expect(output).toContain("agent.json"); expect(output).toContain("api-catalog"); expect(output).toContain(".well-known/ard.json"); expect(output).toContain("mcp/server-card.json"); expect(output).toContain("agent.openapi.json"); }); test("buildLlmsIndex: agent.enabled false → zero agent discovery links", () => { const output = buildLlmsIndex(makeSite({ agent: { enabled: false } })); expect(output).not.toContain("agent.json"); expect(output).not.toContain("api-catalog"); expect(output).not.toContain(".well-known/ard.json"); expect(output).not.toContain("server-card.json"); expect(output).not.toContain("agent.openapi.json"); expect(output).toContain("llms-full.txt"); }); test("buildLlmsIndex: agent links use absolute https URLs", () => { const output = buildLlmsIndex(makeSite()); expect(output).toContain("https://example.com/.well-known/agent.json"); expect(output).toContain("https://example.com/.well-known/api-catalog"); expect(output).toContain("https://example.com/.well-known/ard.json"); expect(output).toContain("https://example.com/.well-known/mcp/server-card.json"); expect(output).toContain("https://example.com/.well-known/agent.openapi.json"); });