huskies: merge 1215 story Pipeline board shows active-agent state distinctly from idle-blocked
This commit is contained in:
@@ -453,6 +453,67 @@ describe("StagePanel", () => {
|
|||||||
expect(badge).toHaveTextContent("BLOCKED");
|
expect(badge).toHaveTextContent("BLOCKED");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Story 1215 — confirms the board shows an active-agent indicator instead
|
||||||
|
// of the plain blocked icon whenever a running/pending agent is present,
|
||||||
|
// even though blocked=true, and falls back to the plain icon otherwise.
|
||||||
|
it("shows active-agent indicator instead of blocked icon when a running/pending agent is present, even if blocked=true", () => {
|
||||||
|
const items: PipelineStageItem[] = [
|
||||||
|
{
|
||||||
|
story_id: "54_story_blocked_active_agent",
|
||||||
|
name: "Blocked With Active Agent",
|
||||||
|
error: null,
|
||||||
|
merge_failure: null,
|
||||||
|
agent: { agent_name: "coder", model: "claude", status: "running" },
|
||||||
|
review_hold: null,
|
||||||
|
qa: null,
|
||||||
|
depends_on: null,
|
||||||
|
blocked: true,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
render(<StagePanel title="Current" items={items} />);
|
||||||
|
const badge = screen.getByTestId("blocked-badge-54_story_blocked_active_agent");
|
||||||
|
expect(badge).not.toHaveTextContent("BLOCKED");
|
||||||
|
expect(badge).toHaveTextContent("RECOVERING");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("drives the distinct indicator off the agent's running/pending status, not the blocked flag alone", () => {
|
||||||
|
const items: PipelineStageItem[] = [
|
||||||
|
{
|
||||||
|
story_id: "55_story_blocked_stale_agent",
|
||||||
|
name: "Blocked With Completed Agent",
|
||||||
|
error: null,
|
||||||
|
merge_failure: null,
|
||||||
|
agent: { agent_name: "coder", model: "claude", status: "completed" },
|
||||||
|
review_hold: null,
|
||||||
|
qa: null,
|
||||||
|
depends_on: null,
|
||||||
|
blocked: true,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
render(<StagePanel title="Current" items={items} />);
|
||||||
|
const badge = screen.getByTestId("blocked-badge-55_story_blocked_stale_agent");
|
||||||
|
expect(badge).toHaveTextContent("BLOCKED");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("shows the plain blocked icon for a story that is blocked with no live agent", () => {
|
||||||
|
const items: PipelineStageItem[] = [
|
||||||
|
{
|
||||||
|
story_id: "56_story_blocked_no_agent",
|
||||||
|
name: "Blocked No Agent",
|
||||||
|
error: null,
|
||||||
|
merge_failure: null,
|
||||||
|
agent: null,
|
||||||
|
review_hold: null,
|
||||||
|
qa: null,
|
||||||
|
depends_on: null,
|
||||||
|
blocked: true,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
render(<StagePanel title="Current" items={items} />);
|
||||||
|
const badge = screen.getByTestId("blocked-badge-56_story_blocked_no_agent");
|
||||||
|
expect(badge).toHaveTextContent("BLOCKED");
|
||||||
|
});
|
||||||
|
|
||||||
it("shows spinning icon for merge_failure item with running mergemaster", () => {
|
it("shows spinning icon for merge_failure item with running mergemaster", () => {
|
||||||
const items: PipelineStageItem[] = [
|
const items: PipelineStageItem[] = [
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user