26 lines
1.2 KiB
TypeScript
26 lines
1.2 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
|
|
import { getAssistantDirectiveTranslationKey, parseAssistantDirectives } from "./assistant-directives";
|
|
|
|
describe("assistant directives", () => {
|
|
test("preserves text while parsing Homarr context references into visual segments", () => {
|
|
expect(
|
|
parseAssistantDirectives(
|
|
"Open :app[Facebook]{name=p6ik48io64xh4p1kyz2kwxiw} with :integration[Jellyfin]{name=pui7uj2196m5a96tl5hues5r} on :board[defaultv2]{name=a7b4sb1qkwftzt5xppxuvceq}",
|
|
),
|
|
).toEqual([
|
|
{ kind: "text", text: "Open " },
|
|
{ kind: "mention", type: "app", label: "Facebook", id: "p6ik48io64xh4p1kyz2kwxiw" },
|
|
{ kind: "text", text: " with " },
|
|
{ kind: "mention", type: "integration", label: "Jellyfin", id: "pui7uj2196m5a96tl5hues5r" },
|
|
{ kind: "text", text: " on " },
|
|
{ kind: "mention", type: "board", label: "defaultv2", id: "a7b4sb1qkwftzt5xppxuvceq" },
|
|
]);
|
|
});
|
|
|
|
test("uses the tools label for model-context tools and a safe fallback for unknown directives", () => {
|
|
expect(getAssistantDirectiveTranslationKey("tool")).toBe("tools");
|
|
expect(getAssistantDirectiveTranslationKey("unknown")).toBe("context");
|
|
});
|
|
});
|