Fix TypeScript deadlock repro E2E test#17701
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 17701Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 17701" |
d96bee7 to
1d2f683
Compare
There was a problem hiding this comment.
Pull request overview
This PR refactors the TypeScript AppHost async-callback deadlock regression test to use the shared CLI E2E TerminalRun lifecycle pattern instead of bespoke terminal-run cleanup logic.
Changes:
- Replaces manual
pendingRun/testBodyFailed/finallycleanup withCliE2ETestHelpers.StartRun. - Keeps the existing repro setup, restore/build,
aspire start, andaspire stopflow unchanged.
|
/backport to release/13.4 |
|
Started backporting to |
|
❓ CLI E2E Tests unknown — 110 passed, 0 failed, 2 unknown (commit View all recordings
📹 Recordings uploaded automatically from CI run #26665457550 |
|
✅ No documentation update needed. docs_optional → |
Pulls in microsoft#17701 (Fix TypeScript deadlock repro E2E test) so PR GitHub Actions can complete. Main has been broken for PR events since microsoft#17575 added a test calling RunCommandFailFastAsync which microsoft#17588 renamed to RunCommandAsync. microsoft#17701 updates the call sites. No infra changes from this branch are affected by this merge. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Summary
Refactors
TypeScriptAppHostRunDoesNotDeadlockWhenLazyOptionsInvokeAsyncCallback(added in #17575) to use theTerminalRunpattern viaCliE2ETestHelpers.StartRun, replacing the manualpendingRun/testBodyFailed/ try-catch-finally cleanup block.Changes
terminal.RunAsync+ try/catch/finally withawait using var terminalRun = CliE2ETestHelpers.StartRun(...)which handles diagnostics capture, terminal exit, and awaiting the run automatically viaDisposeAsync.RunCommandFailFastAsync(which doesn't exist) withRunCommandAsyncto fix compilation.This makes the test consistent with all other CLI E2E tests in the project.
Fixes #17684