microsoft / microsoft/vscode-test-cli

download.timeout not passed to downloadAndUnzipVSCode in installDependentExtensions

Open
#106 1 comment 2 reactions 2 assignees View on GitHub

@connor4312 is already working on this.

Since Apr 16, 2026.

  • #107 by @copilot-swe-agent — open
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.