mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 22:24:31 +00:00
test: table-drive utils and channel-match cases
This commit is contained in:
@@ -2,52 +2,64 @@ 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({
|
||||
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",
|
||||
invalidFallback: "ack",
|
||||
}),
|
||||
).toEqual({
|
||||
level: "extensive",
|
||||
ackEnabled: false,
|
||||
agentReactionsEnabled: true,
|
||||
agentReactionGuidance: "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;
|
||||
|
||||
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",
|
||||
for (const testCase of cases) {
|
||||
it(testCase.name, () => {
|
||||
expect(resolveReactionLevel(testCase.input)).toEqual(testCase.expected);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user