Skip to content

[rush] Scope integration budgets to graph and reporter lifecycle tests - #6183

Merged
Ian Clanton-Thuon (iclanton) merged 1 commit into
microsoft:mainfrom
iclanton:fix/daemon-integration-test-budgets
Oct 30, 2026
Merged

Ian Clanton-Thuon (iclanton) merged 1 commit into
microsoft:mainfrom
iclanton:fix/daemon-integration-test-budgets

Conversation

@iclanton

Copy link
Copy Markdown
Member

Summary

Follow up #6174 by scoping a 30-second Jest test/hook budget to two other real-process integration files: daemon graph request routing and Rush command reporter lifecycle.

The CI audit found a five-second graph setup hook timeout in run 40634107043 and five-second delayed-telemetry test/teardown timeouts in run 40634446358.

Details

Graph initialization launches Git and build processes in beforeEach. Reporter lifecycle tests run real commands and join watch/finalization resources in afterEach. These should not inherit the five-second default intended for smaller tests.

Only the two integration files change. Explicit per-test deadlines, cancellation/abort handling, resource joins, assertions, production admission/startup timeouts, and global CI concurrency remain unchanged. No retries or skips are added.

This does not fix protocol ordering, filesystem identity, or daemon fixture directory-removal races. The delayed-pong race already has #6153; project-local test workspace cleanup is being prepared separately.

How it was tested

macOS, Node 24.22.2:

  • In libraries/rush-lib, rushx _phase:build — passed (TypeScript, lint, API Extractor, bundle).
  • In libraries/rush-lib, rushx _phase:test --test-path-pattern RushCommandLineParserReporterLifecycle — passed, 18 tests.
  • In libraries/rush-daemon, rushx _phase:build — passed (TypeScript, lint, API Extractor).
  • In libraries/rush-daemon, HOME="$PWD/temp/test-home" node ../../apps/heft/lib-commonjs/start.js run --only test -- --test-path-pattern 'DaemonGraphRequestRouter|DaemonGraphFixtureSetup|WorkspaceRequestAdmission' — passed, 38 tests, including graph setup cancellation/disposal and controlled-clock admission tests. The project-local test home avoids the developer's Rush user .env; an initial run with the normal home correctly rejected engine execution because of that unrelated configuration.
  • node common/scripts/install-run-rush.js change --verify --target-branch microsoft/main --no-fetch — passed.
  • Pre-commit Prettier hook — passed.

The existing _phase:test Rushx wrapper does not preserve a shell pipe in a regex argument, so the combined selector is passed directly to Heft. Windows and the full repository matrix were not run locally for this PR; CI must validate those.

Impacted documentation

None; test-only changes, recorded with no-release change files.

Give real graph initialization and command/telemetry finalization a 30-second test and hook budget. Preserve cancellation joins, explicit per-case deadlines, all assertions, and production admission/startup timeouts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@iclanton
Ian Clanton-Thuon (iclanton) merged commit 768fd17 into microsoft:main Oct 30, 2026
6 checks passed
@github-project-automation github-project-automation Bot moved this from Needs triage to Closed in Bug Triage Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Closed

Development

Successfully merging this pull request may close these issues.

2 participants