Files
dc-recorder/tests/moderation/llmModerationClient.test.ts
2026-05-14 19:21:15 +07:00

57 lines
1.3 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { parseModerationResponse } from "../../src/moderation/llmModerationClient";
describe("parseModerationResponse", () => {
it("parses valid keyed results", () => {
const result = parseModerationResponse(
JSON.stringify({
results: [
{
message_id: "m1",
status: "warn",
flags: ["provokasi"],
score: 0.7,
analysis: "Perlu peringatan.",
},
],
}),
["m1"],
);
expect(result).toEqual([
{
messageId: "m1",
status: "warn",
flags: ["provokasi"],
score: 0.7,
analysis: "Perlu peringatan.",
},
]);
});
it("rejects missing target ids", () => {
expect(() =>
parseModerationResponse(JSON.stringify({ results: [] }), ["m1"]),
).toThrow(/missing/i);
});
it("rejects unknown ids", () => {
expect(() =>
parseModerationResponse(
JSON.stringify({
results: [
{
message_id: "m2",
status: "clean",
flags: [],
score: 0,
analysis: "OK",
},
],
}),
["m1"],
),
).toThrow(/unknown/i);
});
});