Files
bifrost/ui/app/workspace/logs/views/columns.test.ts
Beyhan Oğur 880f412e2c first commit
2026-04-26 21:52:23 +03:00

100 lines
2.5 KiB
TypeScript

import { describe, expect, it } from "vitest";
import type { LogEntry } from "@/lib/types/logs";
import { getMessage } from "./columns";
describe("getMessage", () => {
it("returns EI realtime text from input history", () => {
const log = {
object: "realtime.turn",
input_history: [
{
role: "user",
content: [{ type: "text", text: "hello from the browser" }],
},
],
} as unknown as LogEntry;
expect(getMessage(log)).toBe("User: hello from the browser");
});
it("returns LM realtime text from output message", () => {
const log = {
object: "realtime.turn",
input_history: [],
responses_input_history: [],
output_message: {
role: "assistant",
content: [{ type: "text", text: "hello from the model" }],
},
} as unknown as LogEntry;
expect(getMessage(log)).toBe("Assistant: hello from the model");
});
it("returns split realtime text when both user and assistant are present", () => {
const log = {
object: "realtime.turn",
input_history: [
{
role: "user",
content: [{ type: "text", text: "who are you?" }],
},
],
output_message: {
role: "assistant",
content: [{ type: "text", text: "I am the assistant." }],
},
} as unknown as LogEntry;
expect(getMessage(log)).toBe("User: who are you?\nAssistant: I am the assistant.");
});
it("returns split realtime text including tool output", () => {
const log = {
object: "realtime.turn",
input_history: [
{
role: "tool",
content: [{ type: "text", text: '{"nextResponse":"tool result"}' }],
},
{
role: "user",
content: [{ type: "text", text: "who are you?" }],
},
],
output_message: {
role: "assistant",
content: [{ type: "text", text: "I am the assistant." }],
},
} as unknown as LogEntry;
expect(getMessage(log)).toBe('Tool Result: {"nextResponse":"tool result"}\nUser: who are you?\nAssistant: I am the assistant.');
});
it("returns realtime assistant tool calls from output message", () => {
const log = {
object: "realtime.turn",
input_history: [
{
role: "user",
content: [{ type: "text", text: "show me a pastel palette" }],
},
],
output_message: {
role: "assistant",
tool_calls: [
{
function: {
name: "display_color_palette",
arguments: '{"theme":"pastel"}',
},
},
],
},
} as unknown as LogEntry;
expect(getMessage(log)).toBe('User: show me a pastel palette\nAssistant Tool Call: display_color_palette({"theme":"pastel"})');
});
});