+12








fcd7c979df
Co-authored-by: Artur <145776561+arturict@users.noreply.github.com> Co-authored-by: arturict <arturict@users.noreply.github.com> Co-authored-by: Thomas <thomas@ajnart.fr> Co-authored-by: Afonso Jorge Ramos <afonsojorgeramos@gmail.com> Co-authored-by: Danura30082 <danura30082+github@gmail.com> Co-authored-by: Kushie <122986913+kushiemoon-dev@users.noreply.github.com> Co-authored-by: ajnart <thomas@ajnart.fr> Co-authored-by: ajnart <thomas@ajnart.dev> Co-authored-by: chenjun <chenjun@foxmail.com> Co-authored-by: Wikibear <wikibear@users.noreply.github.com> Co-authored-by: Bergasha <bergasha@gmail.com> Co-authored-by: leafyelin <43306196+leafyelin@users.noreply.github.com> Co-authored-by: Lucas Araujo <lucas.lra@gmail.com> Co-authored-by: GreenMonito <86085570+GreenMonito@users.noreply.github.com> Co-authored-by: Nerdy-Technician <roffo@nerdy-technician.social> Co-authored-by: Jun <34545896+jcstrong@users.noreply.github.com> Co-authored-by: Edmond Abraham <54119952+gitedmond@users.noreply.github.com> Co-authored-by: thrawnx <tight.bulb9384@fastmail.com> Co-authored-by: Chris <58918656+nordada@users.noreply.github.com> Co-authored-by: yi111 <153097222+Yi-111-a@users.noreply.github.com> Co-authored-by: Yanis <naamaneyanis@gmail.com> Co-authored-by: Wikibear <me@sej.de> Co-authored-by: alessiottavo <93441886+alessiottavo@users.noreply.github.com>
44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
|
|
import { resolveAssistantDirectiveEntity, transformAssistantMarkdownDirectives } from "./assistant-markdown-directives";
|
|
|
|
describe("assistant markdown directives", () => {
|
|
test("turns assistant item citations into typed inline elements", () => {
|
|
const directive: {
|
|
type: string;
|
|
name: string;
|
|
attributes: { name: string };
|
|
children: { type: string; value: string }[];
|
|
data?: Record<string, unknown>;
|
|
} = {
|
|
type: "textDirective",
|
|
name: "app",
|
|
attributes: { name: "app-1" },
|
|
children: [{ type: "text", value: "Discord" }],
|
|
};
|
|
transformAssistantMarkdownDirectives({ type: "root", children: [directive] });
|
|
|
|
expect(directive.data).toEqual({
|
|
hName: "span",
|
|
hProperties: {
|
|
"data-assistant-directive": "true",
|
|
"data-directive-id": "app-1",
|
|
"data-directive-label": "Discord",
|
|
"data-directive-type": "app",
|
|
},
|
|
});
|
|
});
|
|
|
|
test("resolves shorthand citations only when their label is unambiguous", () => {
|
|
const entities = [
|
|
{ id: "app-1", type: "app" as const, label: "Discord", description: "Chat", iconUrl: "/discord.svg" },
|
|
{ id: "board-1", type: "board" as const, label: "Home", description: "Home board" },
|
|
];
|
|
|
|
expect(resolveAssistantDirectiveEntity(entities, { id: "Discord", label: "Discord", type: "app" })?.id).toBe(
|
|
"app-1",
|
|
);
|
|
expect(resolveAssistantDirectiveEntity(entities, { id: "Home", label: "Home", type: "board" })?.id).toBe("board-1");
|
|
});
|
|
});
|