diff --git a/packages/dashboard/app/components/__tests__/Board.test.tsx b/packages/dashboard/app/components/__tests__/Board.test.tsx index 172a44b499..12ff40d3d6 100644 --- a/packages/dashboard/app/components/__tests__/Board.test.tsx +++ b/packages/dashboard/app/components/__tests__/Board.test.tsx @@ -1029,7 +1029,7 @@ describe("Board", () => { enableFlag({}, [DEFAULT_WORKFLOW]); const { unmount } = renderBoard({ onCreateWorkflow }); - await waitFor(() => expect(screen.getByTestId("column-triage")).toBeDefined()); + await waitFor(() => expect(document.querySelector(".board-workflow-toolbar")).not.toBeNull()); expect(workflowToolbarActionNames()).toEqual(["New workflow"]); fireEvent.click(screen.getByRole("button", { name: "New workflow" })); expect(onCreateWorkflow).toHaveBeenCalledTimes(1); @@ -1039,7 +1039,7 @@ describe("Board", () => { enableFlag({}, [DEFAULT_WORKFLOW]); renderBoard({ onOpenWorkflowEditor }); - await waitFor(() => expect(screen.getByTestId("column-triage")).toBeDefined()); + await waitFor(() => expect(document.querySelector(".board-workflow-toolbar")).not.toBeNull()); expect(workflowToolbarActionNames()).toEqual(["Edit workflows"]); fireEvent.click(screen.getByRole("button", { name: "Edit workflows" })); expect(onOpenWorkflowEditor).toHaveBeenCalledTimes(1); diff --git a/packages/dashboard/vitest.config.ts b/packages/dashboard/vitest.config.ts index 95320c0178..b30286d0b6 100644 --- a/packages/dashboard/vitest.config.ts +++ b/packages/dashboard/vitest.config.ts @@ -231,7 +231,9 @@ const qualityAppComponentBatchBTests = buildComponentQualityInclude(batchedQuali const qualityAppAppOnlyTests = ["app/components/__tests__/App.test.tsx"]; const qualityAppChatOnlyTests = ["app/components/__tests__/ChatView.test.tsx"]; const qualityAppSettingsOnlyTests = ["app/components/__tests__/SettingsModal.test.tsx"]; -const quarantinedDashboardTests: string[] = ["app/components/__tests__/Board.test.tsx"]; +const quarantinedDashboardTests = [ + "app/components/__tests__/WorkflowNodeEditor.test.tsx", +]; const qualityApiTests = [ // Critical HTTP/server behavior: auth, task/project/settings mutation, diff --git a/scripts/lib/test-quarantine.json b/scripts/lib/test-quarantine.json index 4837cf4924..3d7872606d 100644 --- a/scripts/lib/test-quarantine.json +++ b/scripts/lib/test-quarantine.json @@ -2,8 +2,8 @@ "$comment": "Flaky-test quarantine ledger (deletion ratchet — see AGENTS.md 'Flaky tests: quarantine on sight' and docs/testing.md 'Quarantine ledger and the deletion ratchet'). A test observed failing without a corresponding real bug is quarantined ON SIGHT: add an entry here AND a matching one-line `exclude` entry in that package's vitest config, in the same commit. Every entry needs a non-empty `reason` (link the failing run) and a `quarantinedAt` date — the entry expires 14 days later, at which point the test file is DELETED unless someone rescues it with evidence it catches real regressions plus a root-cause fix (never appeasement). There is deliberately no loader module and no automation around this file: it is a dated record, the vitest config exclude is the mechanism, and the sweep is policy executed by whoever touches the suite.", "entries": [ { - "file": "packages/dashboard/app/components/__tests__/Board.test.tsx", - "reason": "FN-6154 local pnpm test run on 2026-06-09 failed in 'Board > multi-lane board (U9, flag ON) > preserves workflow toolbar partial action visibility' with missing .board-workflow-toolbar; unrelated to WorkflowNodeEditor CSS max-height change.", + "file": "packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx", + "reason": "FN-6156 broad pnpm test observed dashboard-app-quality-components-b flake: edits a code node source and timeout could not find Source (TypeScript) after clicking Code; unrelated to Board.test.tsx quarantine rescue.", "quarantinedAt": "2026-06-09" } ]