35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
deriveMacDockBadgeCountFromWorkspaceStatuses,
|
|
isWorkspaceActionableForDesktopBadge,
|
|
} from "./desktop-badge-state";
|
|
|
|
describe("desktop-badge-state", () => {
|
|
it("treats attention-requiring workspace statuses as actionable", () => {
|
|
expect(isWorkspaceActionableForDesktopBadge("attention")).toBe(true);
|
|
expect(isWorkspaceActionableForDesktopBadge("needs_input")).toBe(true);
|
|
expect(isWorkspaceActionableForDesktopBadge("failed")).toBe(true);
|
|
});
|
|
|
|
it("ignores running and done workspace statuses", () => {
|
|
expect(isWorkspaceActionableForDesktopBadge("running")).toBe(false);
|
|
expect(isWorkspaceActionableForDesktopBadge("done")).toBe(false);
|
|
});
|
|
|
|
it("returns undefined when no visible workspaces need attention", () => {
|
|
expect(deriveMacDockBadgeCountFromWorkspaceStatuses(["done", "running"])).toBeUndefined();
|
|
});
|
|
|
|
it("counts only actionable visible workspaces", () => {
|
|
expect(
|
|
deriveMacDockBadgeCountFromWorkspaceStatuses([
|
|
"done",
|
|
"attention",
|
|
"running",
|
|
"needs_input",
|
|
"failed",
|
|
]),
|
|
).toBe(3);
|
|
});
|
|
});
|