test(tasks): isolate dispatch rail fixture - #2553
Merged
ymichael merged 1 commit intoAug 27, 2026
Merged
Conversation
ymichael
deleted the
bb/ci-flake-fix-tasks-dispatch-target-readiness-thr_icwb6gktfg
branch
August 27, 2026 18:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Human comments
What was wrong
The dispatch-target rail test mounted the entire Tasks navigation panel even though it only exercises
PropertiesRail. That made the "Edit dispatch target" trigger wait forDetailView's unrelatedlistProjectseffect while jsdom rendered the editor, activity view, and the rest of the task shell. In the failing package-shard run, a 4-vCPU runner executed 67 Turbo test tasks; the Tasks suite took 159.69s, this file took 16.55s, and the first case exhausted the existing 8-second Testing Library deadline at 10.62s while its sibling passed after 5.91s. Withholding onlylistProjectslocally reproduced the exact missing-button error and rendered shell in 8.03s. Scheduler oversubscription amplified the avoidable dependency and accessibility-query cost; it was not itself the root cause. PR #2512 changed no Tasks files and its final package run passed, which is consistent with a main-rooted flake.What changed
PropertiesRailinstead of loading the full plugin app.TasksRefreshProviderand prebuilt task/project fixtures.listBbProjectsquery, popover interactions, save/unlink RPC lifecycle, and exact payload assertions.No production behavior, wire contract, CLI surface, or deadline changed. Increasing the already-raised 8-second async utility timeout would only move the failure. Awaiting the full panel's project query would remove polling but retain the unrelated editor/tree work; the direct rail seam removes both the irrelevant readiness gate and repeated large accessibility-tree transforms while keeping the behavior lifecycle this test owns. The fresh-main gate was independently verified clean at
1d97c63ed13b5231c1051b7af7ac36661d1f65abbefore inspection or edits.How you verified
listProjectsmade the focused first case fail withUnable to find role="button" and name "Edit dispatch target"after 8.03s; the diagnostic was removed.pnpm --dir plugins/tasks exec vitest run --config vitest.config.ts views/detail/rail.test.tsx— 2/2 passed in 229ms.pnpm exec turbo run test --filter=bb-plugin-tasks --force— 35 files and 361 tests passed; rail file 348ms.pnpm exec turbo run typecheck --filter=bb-plugin-tasks --force— 5/5 tasks passed.pnpm exec turbo run build --filter=bb-plugin-tasks --force— 6/6 tasks passed.pnpm exec oxfmt plugins/tasks/views/detail/rail.test.tsx --checkandgit diff --checkpassed.