66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { resolveReactionLevel } from "./reaction-level.js";
|
|
|
|
describe("resolveReactionLevel", () => {
|
|
const cases = [
|
|
{
|
|
name: "defaults when value is missing",
|
|
input: {
|
|
value: undefined,
|
|
defaultLevel: "minimal" as const,
|
|
invalidFallback: "ack" as const,
|
|
},
|
|
expected: {
|
|
level: "minimal",
|
|
ackEnabled: false,
|
|
agentReactionsEnabled: true,
|
|
agentReactionGuidance: "minimal",
|
|
},
|
|
},
|
|
{
|
|
name: "supports ack",
|
|
input: { value: "ack", defaultLevel: "minimal" as const, invalidFallback: "ack" as const },
|
|
expected: { level: "ack", ackEnabled: true, agentReactionsEnabled: false },
|
|
},
|
|
{
|
|
name: "supports extensive",
|
|
input: {
|
|
value: "extensive",
|
|
defaultLevel: "minimal" as const,
|
|
invalidFallback: "ack" as const,
|
|
},
|
|
expected: {
|
|
level: "extensive",
|
|
ackEnabled: false,
|
|
agentReactionsEnabled: true,
|
|
agentReactionGuidance: "extensive",
|
|
},
|
|
},
|
|
{
|
|
name: "uses invalid fallback ack",
|
|
input: { value: "bogus", defaultLevel: "minimal" as const, invalidFallback: "ack" as const },
|
|
expected: { level: "ack", ackEnabled: true, agentReactionsEnabled: false },
|
|
},
|
|
{
|
|
name: "uses invalid fallback minimal",
|
|
input: {
|
|
value: "bogus",
|
|
defaultLevel: "minimal" as const,
|
|
invalidFallback: "minimal" as const,
|
|
},
|
|
expected: {
|
|
level: "minimal",
|
|
ackEnabled: false,
|
|
agentReactionsEnabled: true,
|
|
agentReactionGuidance: "minimal",
|
|
},
|
|
},
|
|
] as const;
|
|
|
|
for (const testCase of cases) {
|
|
it(testCase.name, () => {
|
|
expect(resolveReactionLevel(testCase.input)).toEqual(testCase.expected);
|
|
});
|
|
}
|
|
});
|