fix(test): raise timeout for Windows installer end-to-end tests#4352
Conversation
The Windows-only end-to-end installer tests spawn cmd.exe to run the .bat installer and then qwen.cmd --version, which boots a Node process. On GitHub's windows-latest runners that chain regularly takes >5s, so the default 5s vitest timeout makes them flaky (recently observed at 5804ms on CI). Bump the describe-block timeout to 30s, which leaves headroom without masking real regressions.
📋 Review SummaryThis PR addresses a flaky test timeout issue on Windows CI runners by increasing the timeout from the default 5s to 30s for the Windows installer end-to-end tests. The change is minimal, well-motivated, and correctly scoped to only affect Windows-specific tests. 🔍 General Feedback
🎯 Specific Feedback🔵 Low
✅ Highlights
|
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
wenshao
left a comment
There was a problem hiding this comment.
[Suggestion] scripts/tests/install-script.test.js:534 — The sibling describe('Linux/macOS installer end-to-end', () => { block has no timeout override, despite running structurally similar end-to-end tests that also spawn child processes via execFileSync. The PR's rationale ("CI runners are slow at spawning processes") applies to both platforms.
Consider adding a matching timeout to the Linux/macOS block (e.g. { timeout: 15000 } — no cmd.exe overhead, so less headroom needed), or setting testTimeout: 30000 in scripts/tests/vitest.config.ts to cover all E2E-style tests in this file uniformly.
— qwen-latest-series-invite-beta-v34 via Qwen Code /review
Match the timeout already applied to the Windows e2e block: the Linux/macOS installer tests also spawn child processes via execFileSync, so they share the same flake risk near the default 5s vitest timeout. 15s leaves ample headroom without Windows' cmd.exe overhead. Addresses review feedback on #4352.
|
Thanks — addressed in 7a06517. Went with the per- |
| // These end-to-end installs spawn child processes via execFileSync; | ||
| // the default 5s vitest timeout is too tight on slow CI runners even | ||
| // without Windows' cmd.exe + node.exe startup overhead. | ||
| describe('Linux/macOS installer end-to-end', { timeout: 15000 }, () => { |
There was a problem hiding this comment.
[Suggestion] Numeric literals 15000 / 30000 lack separators, but line 379 in this file uses 30_000. Consider 15_000 and 30_000 for intra-file consistency.
| describe('Linux/macOS installer end-to-end', { timeout: 15000 }, () => { | |
| describe('Linux/macOS installer end-to-end', { timeout: 15_000 }, () => { |
— qwen-latest-series-invite-beta-v34 via Qwen Code /review
Summary
scripts/tests/install-script.test.js) spawncmd.exeto run the.batinstaller and thenqwen.cmd --version, which boots a Node process. On GitHub'swindows-latestrunners that chain regularly takes more than 5s, exceeding vitest's default 5s test timeout.installs a local standalone archive with checksum verificationtimed out at 5804ms on https://github.com/QwenLM/qwen-code/actions/runs/26139062779/job/76880493669 (a PR unrelated to the installer).{ timeout: 30000 }on theWindows installer end-to-enddescribeblock. The timeout cascades to all threeitOnWindowstests inside it; no behavior change other than headroom on slow Windows runners.Test plan
itOnWindows(no behavior change).Test (windows-latest, Node 22.x)) passes — please re-check this on the green run.