microsoft / microsoft/vscode-test-cli
download.timeout not passed to downloadAndUnzipVSCode in installDependentExtensions
- Dominant language
- TypeScript
- Stars
- 53
- Forks
- 16
- Avg merge
- 10h 57m
- Merged PRs (30d)
- 2
Description
Bug
The download.timeout configuration option is not forwarded to downloadAndUnzipVSCode() when called from installDependentExtensions() in src/cli/platform/desktop.mts. This causes the download to always use the hardcoded 15s default from @vscode/test-electron, regardless of user configuration.
Reproduction
Set download.timeout in .vscode-test.mjs:
export default defineConfig({
download: {
timeout: 60_000,
},
// ...
});
When the CLI installs dependent extensions, VS Code download still
times out after 15s (instead of the configured 60s) because
installDependentExtensions calls downloadAndUnzipVSCode with
positional arguments that omit the timeout:
// desktop.mts line ~138
const vscodePath = await electron.downloadAndUnzipVSCode(
opts.version,
opts.platform,
opts.reporter,
);
Meanwhile baseCliOptions() correctly resolves timeout from config:
private baseCliOptions() {
return {
// ...
timeout: this.test.download?.timeout, // <-- computed but unused
};
}
And runTests() correctly passes the full options object (including
timeout) to downloadAndUnzipVSCode(options) via the object form.
Expected behavior
installDependentExtensions should pass the timeout through, e.g.:
const vscodePath = await electron.downloadAndUnzipVSCode(opts);
Impact
On CI runners with slow CDN connectivity (e.g. GitHub Actions Linux
runners), the 15s hardcoded timeout causes transient failures during
version resolution (Resolving version...), even when users have
explicitly configured a longer timeout.
Environment
@vscode/test-cli@0.0.12@vscode/test-electron@2.5.2- Node 22.x
- Linux (GitHub Actions ubuntu-latest)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.