42 lines
1.4 KiB
TypeScript
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");
|
|
});
|
|
});
|