import { describe, it, expect } from "vitest"; // Mirrors src/app/api/usage/request-details/route.js after redaction removal. // The endpoint now returns stored detail rows verbatim so operators can see // the full request / providerRequest / providerResponse / response payloads. function listResponse(details) { return { details: details || [], pagination: { page: 1, pageSize: 20, totalItems: (details || []).length, totalPages: 1 } }; } describe("request-details list endpoint", () => { it("returns full conversation payloads for operator debugging", () => { const details = [{ id: "abc", provider: "opencode", model: "deepseek-v4-flash-free", timestamp: "2026-08-05T00:00:00Z", status: "success", tokens: { prompt_tokens: 10, completion_tokens: 5 }, request: { messages: [{ role: "user", content: "secret prompt" }] }, providerRequest: { messages: [{ role: "user", content: "secret prompt" }] }, providerResponse: { choices: [{ message: { content: "secret answer" } }] }, response: { content: "secret answer" }, }]; const out = listResponse(details).details[0]; expect(out.id).toBe("abc"); expect(out.tokens).toEqual({ prompt_tokens: 10, completion_tokens: 5 }); expect(out.request).toEqual({ messages: [{ role: "user", content: "secret prompt" }] }); expect(out.providerRequest).toEqual({ messages: [{ role: "user", content: "secret prompt" }] }); expect(out.providerResponse).toEqual({ choices: [{ message: { content: "secret answer" } }] }); expect(out.response).toEqual({ content: "secret answer" }); }); it("handles empty details", () => { const out = listResponse([]); expect(out.details).toEqual([]); expect(out.pagination.totalItems).toBe(0); }); });