import { i18n } from "@lingui/core"; import { beforeAll, describe, expect, it } from "vitest"; import { isDoingStatus, isNeedsYouStatus, needsYouChipLabel, rosterActivitySubtitle, rosterDoingVerb, rosterStatusDot, } from "./agent-activity"; describe("agent-activity", () => { beforeAll(() => { i18n.load("en", {}); i18n.activate("en"); }); it("classifies needs-you and doing statuses", () => { expect(isNeedsYouStatus("waiting_input")).toBe(true); expect(isNeedsYouStatus("waiting_takeover")).toBe(true); expect(isNeedsYouStatus("running")).toBe(false); expect(isDoingStatus("running")).toBe(true); expect(isDoingStatus("idle")).toBe(false); }); it("returns doing verbs instead of raw status", () => { expect(rosterDoingVerb("waiting_input")).toBe("Needs your reply"); expect(rosterDoingVerb("running")).toBe("Working…"); expect(rosterDoingVerb("idle")).toBeNull(); }); it("builds roster subtitle with verb priority", () => { expect(rosterActivitySubtitle("running", "Some preview")).toBe("Working…"); expect(rosterActivitySubtitle("idle", "Hello there")).toBe("Hello there"); expect(rosterActivitySubtitle("idle", "")).toBe("Ready"); }); it("maps status dot tones", () => { expect(rosterStatusDot("waiting_input")).toBe("needs-you"); expect(rosterStatusDot("running")).toBe("working"); expect(rosterStatusDot("idle")).toBe("idle"); }); it("returns needs-you chip label only for waiting states", () => { expect(needsYouChipLabel("waiting_input")).toBe("Needs you"); expect(needsYouChipLabel("running")).toBeNull(); }); });