39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "bun:test";
|
|
|
|
import {
|
|
createPressureTrendDemoEnvelopePayload,
|
|
createPressureTrendDemoToolCall,
|
|
isPressureTrendDemoPrompt,
|
|
} from "../../src/routes/pressureTrendDemo.js";
|
|
|
|
describe("pressure trend demo", () => {
|
|
it("matches the controlled demo prompt", () => {
|
|
expect(isPressureTrendDemoPrompt("展示最近压力趋势")).toBe(true);
|
|
expect(isPressureTrendDemoPrompt("请 展示 最近 压力 趋势")).toBe(true);
|
|
expect(isPressureTrendDemoPrompt("展示最近流量趋势")).toBe(false);
|
|
});
|
|
|
|
it("creates a show_chart tool call that maps to a chart UIEnvelope", () => {
|
|
const toolCall = createPressureTrendDemoToolCall();
|
|
const payload = createPressureTrendDemoEnvelopePayload("client-session-1", toolCall);
|
|
|
|
expect(toolCall.tool).toBe("show_chart");
|
|
expect(payload).toMatchObject({
|
|
session_id: "client-session-1",
|
|
envelope: {
|
|
kind: "chart",
|
|
schemaVersion: "agent-ui@1",
|
|
grammar: "echarts-safe-subset",
|
|
surface: "chat_inline",
|
|
spec: {
|
|
title: "最近压力趋势",
|
|
chart_type: "line",
|
|
},
|
|
data: {
|
|
x_data: ["10:00", "11:00", "12:00", "13:00", "14:00", "15:00"],
|
|
},
|
|
},
|
|
});
|
|
});
|
|
});
|