refactor(reactions): share reaction level resolver

This commit is contained in:
Peter Steinberger
2026-02-14 13:35:21 +00:00
parent b769b65b48
commit 81361755b7
4 changed files with 151 additions and 97 deletions

View File

@@ -0,0 +1,53 @@
import { describe, expect, it } from "vitest";
import { resolveReactionLevel } from "./reaction-level.js";
describe("resolveReactionLevel", () => {
it("defaults when value is missing", () => {
expect(
resolveReactionLevel({ value: undefined, defaultLevel: "minimal", invalidFallback: "ack" }),
).toEqual({
level: "minimal",
ackEnabled: false,
agentReactionsEnabled: true,
agentReactionGuidance: "minimal",
});
});
it("supports ack", () => {
expect(
resolveReactionLevel({ value: "ack", defaultLevel: "minimal", invalidFallback: "ack" }),
).toEqual({ level: "ack", ackEnabled: true, agentReactionsEnabled: false });
});
it("supports extensive", () => {
expect(
resolveReactionLevel({
value: "extensive",
defaultLevel: "minimal",
invalidFallback: "ack",
}),
).toEqual({
level: "extensive",
ackEnabled: false,
agentReactionsEnabled: true,
agentReactionGuidance: "extensive",
});
});
it("uses invalid fallback ack", () => {
expect(
resolveReactionLevel({ value: "bogus", defaultLevel: "minimal", invalidFallback: "ack" }),
).toEqual({ level: "ack", ackEnabled: true, agentReactionsEnabled: false });
});
it("uses invalid fallback minimal", () => {
expect(
resolveReactionLevel({ value: "bogus", defaultLevel: "minimal", invalidFallback: "minimal" }),
).toEqual({
level: "minimal",
ackEnabled: false,
agentReactionsEnabled: true,
agentReactionGuidance: "minimal",
});
});
});