Files
tutti/packages/agent/gui/shared/agentCustomMentionKinds.spec.ts
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

49 lines
1.4 KiB
TypeScript

import { afterEach, describe, expect, it } from "vitest";
import {
getAgentCustomMentionKind,
registerAgentCustomMentionKind,
resetAgentCustomMentionKindsForTests
} from "./agentCustomMentionKinds";
afterEach(() => {
resetAgentCustomMentionKindsForTests();
});
describe("registerAgentCustomMentionKind", () => {
it("registers and looks up kinds case-insensitively", () => {
registerAgentCustomMentionKind({
kind: "External-Note",
present: (mention) => ({ name: mention.label })
});
expect(getAgentCustomMentionKind("external-note")).toBeDefined();
expect(getAgentCustomMentionKind("EXTERNAL-NOTE")).toBeDefined();
});
it("rejects empty kinds", () => {
expect(() =>
registerAgentCustomMentionKind({
kind: " ",
present: (mention) => ({ name: mention.label })
})
).toThrowError(/non-empty provider id/);
});
it("rejects kinds colliding with built-in provider ids", () => {
for (const reserved of [
"agent-session",
"workspace-app",
"Workspace-Issue",
"workspace-reference",
"custom"
]) {
expect(() =>
registerAgentCustomMentionKind({
kind: reserved,
present: (mention) => ({ name: mention.label })
})
).toThrowError(/collides with a built-in provider id/);
expect(getAgentCustomMentionKind(reserved)).toBeUndefined();
}
});
});