openclaw/src/auto-reply/reply/queue-policy.test.ts

49 lines
1.2 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { resolveActiveRunQueueAction } from "./queue-policy.js";
describe("resolveActiveRunQueueAction", () => {
it("runs immediately when there is no active run", () => {
expect(
resolveActiveRunQueueAction({
isActive: false,
isHeartbeat: false,
shouldFollowup: true,
queueMode: "collect",
}),
).toBe("run-now");
});
it("drops heartbeat runs while another run is active", () => {
expect(
resolveActiveRunQueueAction({
isActive: true,
isHeartbeat: true,
shouldFollowup: true,
queueMode: "collect",
}),
).toBe("drop");
});
it("enqueues followups for non-heartbeat active runs", () => {
expect(
resolveActiveRunQueueAction({
isActive: true,
isHeartbeat: false,
shouldFollowup: true,
queueMode: "collect",
}),
).toBe("enqueue-followup");
});
it("enqueues steer mode runs while active", () => {
expect(
resolveActiveRunQueueAction({
isActive: true,
isHeartbeat: false,
shouldFollowup: false,
queueMode: "steer",
}),
).toBe("enqueue-followup");
});
});