story-kit: merge 81_story_agent_roster_badges_show_availability_state
This commit is contained in:
@@ -374,3 +374,74 @@ describe("AgentPanel fade-out", () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("RosterBadge availability state", () => {
|
||||
beforeAll(() => {
|
||||
Element.prototype.scrollIntoView = vi.fn();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
mockedAgents.getAgentConfig.mockResolvedValue(ROSTER);
|
||||
mockedAgents.listAgents.mockResolvedValue([]);
|
||||
});
|
||||
|
||||
it("shows a green dot for an idle agent", async () => {
|
||||
render(<AgentPanel />);
|
||||
|
||||
const dot = await screen.findByTestId("roster-dot-coder-1");
|
||||
// JSDOM normalizes #3fb950 to rgb(63, 185, 80)
|
||||
expect(dot.style.background).toBe("rgb(63, 185, 80)");
|
||||
expect(dot.style.animation).toBe("");
|
||||
});
|
||||
|
||||
it("shows green badge styling for an idle agent", async () => {
|
||||
render(<AgentPanel />);
|
||||
|
||||
const badge = await screen.findByTestId("roster-badge-coder-1");
|
||||
// JSDOM normalizes #3fb95015 to rgba(63, 185, 80, 0.082) and #3fb950 to rgb(63, 185, 80)
|
||||
expect(badge.style.background).toBe("rgba(63, 185, 80, 0.082)");
|
||||
expect(badge.style.color).toBe("rgb(63, 185, 80)");
|
||||
});
|
||||
|
||||
it("shows a blue pulsing dot for an active agent", async () => {
|
||||
const agentList: AgentInfo[] = [
|
||||
{
|
||||
story_id: "81_active",
|
||||
agent_name: "coder-1",
|
||||
status: "running",
|
||||
session_id: null,
|
||||
worktree_path: null,
|
||||
base_branch: null,
|
||||
},
|
||||
];
|
||||
mockedAgents.listAgents.mockResolvedValue(agentList);
|
||||
|
||||
render(<AgentPanel />);
|
||||
|
||||
const dot = await screen.findByTestId("roster-dot-coder-1");
|
||||
// JSDOM normalizes #58a6ff to rgb(88, 166, 255)
|
||||
expect(dot.style.background).toBe("rgb(88, 166, 255)");
|
||||
expect(dot.style.animation).toBe("pulse 1.5s infinite");
|
||||
});
|
||||
|
||||
it("shows blue badge styling for an active agent", async () => {
|
||||
const agentList: AgentInfo[] = [
|
||||
{
|
||||
story_id: "81_active",
|
||||
agent_name: "coder-1",
|
||||
status: "running",
|
||||
session_id: null,
|
||||
worktree_path: null,
|
||||
base_branch: null,
|
||||
},
|
||||
];
|
||||
mockedAgents.listAgents.mockResolvedValue(agentList);
|
||||
|
||||
render(<AgentPanel />);
|
||||
|
||||
const badge = await screen.findByTestId("roster-badge-coder-1");
|
||||
// JSDOM normalizes #58a6ff18 to rgba(88, 166, 255, 0.094) and #58a6ff to rgb(88, 166, 255)
|
||||
expect(badge.style.background).toBe("rgba(88, 166, 255, 0.094)");
|
||||
expect(badge.style.color).toBe("rgb(88, 166, 255)");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user