Files
kandev/apps/web/components/task/sessions-dropdown.test.ts
T

42 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { sessionStatusTooltip } from "./sessions-dropdown";
describe("sessionStatusTooltip", () => {
it("prioritizes permission over clarification for input-capable sessions", () => {
expect(sessionStatusTooltip("RUNNING", { permission: true, clarification: true })).toBe(
"Permission requested",
);
});
it("surfaces clarification over activity for input-capable sessions", () => {
expect(
sessionStatusTooltip("WAITING_FOR_INPUT", { permission: false, clarification: true }),
).toBe("Waiting for input");
});
it("labels background-idle sessions as running when no input is pending", () => {
expect(
sessionStatusTooltip(
"WAITING_FOR_INPUT",
{ permission: false, clarification: false },
"background",
),
).toBe("Background running");
});
it.each([
["STARTING", "Running"],
["COMPLETED", "Complete"],
["FAILED", "Failed"],
["CANCELLED", "Cancelled"],
] as const)("ignores stale pending input for %s sessions", (state, expected) => {
expect(sessionStatusTooltip(state, { permission: true, clarification: true })).toBe(expected);
});
it("does not show background-running for a terminal session with a stale background substate", () => {
expect(
sessionStatusTooltip("COMPLETED", { permission: false, clarification: false }, "background"),
).toBe("Complete");
});
});