| 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); |
| }); |
| } |
| }); |
|
|