Spaces:
Paused
Paused
| import fs from "node:fs/promises"; | |
| import path from "node:path"; | |
| import { afterEach, beforeEach, describe, expect, it } from "vitest"; | |
| import { listChatCommands } from "../auto-reply/commands-registry.js"; | |
| import { setActivePluginRegistry } from "../plugins/runtime.js"; | |
| import { createTestRegistry } from "../test-utils/channel-plugins.js"; | |
| beforeEach(() => { | |
| setActivePluginRegistry(createTestRegistry([])); | |
| }); | |
| afterEach(() => { | |
| setActivePluginRegistry(createTestRegistry([])); | |
| }); | |
| function extractDocumentedSlashCommands(markdown: string): Set<string> { | |
| const documented = new Set<string>(); | |
| for (const match of markdown.matchAll(/`\/(?!<)([a-z0-9_-]+)/gi)) { | |
| documented.add(`/${match[1]}`); | |
| } | |
| return documented; | |
| } | |
| describe("slash commands docs", () => { | |
| it("documents all built-in chat command aliases", async () => { | |
| const docPath = path.join(process.cwd(), "docs", "tools", "slash-commands.md"); | |
| const markdown = await fs.readFile(docPath, "utf8"); | |
| const documented = extractDocumentedSlashCommands(markdown); | |
| for (const command of listChatCommands()) { | |
| for (const alias of command.textAliases) { | |
| expect(documented.has(alias)).toBe(true); | |
| } | |
| } | |
| }); | |
| }); | |