Dashboard › cli › Distillation
c7d18fec-a19b-426e-837d-33f9ded864ea["lore_tm_v1_ETkwd21J42uj4mngk9AvFllHi8DB6zzN5C-H2EjthLQ","lore_tm_v1_hoAEcIabTGpUEQvtOZPAwULLG9I0yGZ1ZcvMvb4bPYw"]
packages/cli/test/commands/cli/upgrade.test.ts adds parameterized coverage ensuring failed or empty fresh release responses do not fall back to a cached target populated through setVersionCheckInfo.packages/cli/test/commands/cli/upgrade.test.ts now imports setVersionCheckInfo from ../../../src/lib/db/version-check.js to seed cached version-check state in upgrade tests.getsentry/cli/releases?per_page=30; one fresh-response case returns Response.json([]) and verifies that a previously cached target is not used."Latest:" and "1.0.0" instead of "Already up to date" and the absence of "Upgrading to".requests.push(String(url)); one method/channel test expects requests to equal [], while another verifies that at least one request contains "/commits?"./manifests/nightly-0.99.0-dev.1234567890.digest: \sha256:${"a".repeat(64)}``.packages/cli/test/lib/binary.test.ts expanded from 98 to 225 lines and now imports/tests getGitHubReleaseByTagUrl, parseUpgradeJson, resolveUpgradeSource, UPGRADE_SOURCES, and UpgradeSourceNotFoundError from packages/cli/src/lib/binary.js.getBinaryDownloadUrl("1.0.0") is now expected to use the Toolkit release path containing /cli@1.0.0/ and to begin with https://github.com/getsentry/toolkit/releases/download/, replacing the legacy unprefixed /1.0.0/ path under getsentry/cli.UPGRADE_SOURCES ordering is tested so getsentry/toolkit is checked before the legacy CLI repository; the Toolkit source uses the product-prefixed release-tag convention, while the legacy source has tagPrefix: "".resolveUpgradeSource() tests probe source-specific URLs generated with getGitHubReleaseByTagUrl("0.45.0", source) and return the selected source together with response: expect.any(Response).resolveUpgradeSource() falls back to the next configured source only when the preceding source returns HTTP 404; a test makes the first request return 404 and the second return 200, recording both request URLs in order.resolveUpgradeSource() parameterized tests require non-404 HTTP failures to stop resolution and throw an error containing HTTP ${status} rather than probing later sources.resolveUpgradeSource() must stop on a network failure and throw "Failed to connect to GitHub: fetch failed" rather than trying subsequent sources.404 Not Found, resolveUpgradeSource() exhausts all source URLs and returns an UpgradeSourceNotFoundError.fetchWithUpgradeError() behavior remains covered: an AbortError is preserved as an ordinary error rather than wrapped in UpgradeError, while non-Error thrown values such as { code: "ECONNRESET", reason: "connection reset" } are wrapped as UpgradeError.