Files
2026-07-13 11:59:58 +08:00

76 lines
1.9 KiB
TypeScript

import { expect, test } from "@rstest/core";
import {
buildReferenceMessageMetadata,
readReferenceMessageContexts,
type SidecarContext,
} from "@/core/sidecar";
const contexts: SidecarContext[] = [
{
type: "referenced_message",
label: "Selected assistant text #2",
messageId: "parent-ai-1",
role: "assistant",
content: "Build it as a side conversation.",
},
{
type: "referenced_message",
label: "Selected assistant text #2",
messageId: "parent-ai-1",
role: "assistant",
content: "Keep the cited snippets compact.",
},
];
test("builds visible message reference metadata for selected contexts", () => {
expect(buildReferenceMessageMetadata(contexts)).toEqual({
referenced_message_count: 2,
referenced_message_ids: ["parent-ai-1", "parent-ai-1"],
referenced_message_roles: ["assistant", "assistant"],
referenced_message_contexts: [
{
label: "Selected assistant text #2",
message_id: "parent-ai-1",
role: "assistant",
content: "Build it as a side conversation.",
},
{
label: "Selected assistant text #2",
message_id: "parent-ai-1",
role: "assistant",
content: "Keep the cited snippets compact.",
},
],
});
});
test("reads visible message reference metadata defensively", () => {
expect(
readReferenceMessageContexts({
referenced_message_contexts: [
{
label: "Selected assistant text #2",
message_id: "parent-ai-1",
role: "assistant",
content: "Build it as a side conversation.",
},
{
label: 42,
message_id: "ignored",
role: "assistant",
content: "Bad reference",
},
],
}),
).toEqual([
{
type: "referenced_message",
label: "Selected assistant text #2",
messageId: "parent-ai-1",
role: "assistant",
content: "Build it as a side conversation.",
},
]);
});