Repository navigation
test(stack): fix 2 flaky tests that depend on GitHub Releases downloads - #7525
Conversation
…r fallback The release-revision test decoded the upstream manifest body without checking the response status, so a GitHub Releases 5xx surfaced as a JSON SchemaError. It now rejects non-2xx responses, falls back to the S3 mirror the stack itself uses, and checks the body against the published manifest pin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MBEk1KNTZbCp5HjsBksymT
…k test A cold edge-runtime download that fell back from GitHub to S3 consumed the test's 30s timeout. The download now runs in a beforeAll with its own guard, so the test only measures prepare and removeData. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MBEk1KNTZbCp5HjsBksymT
|
/ai-review Generated by Claude Code |
CLI benchmark (Lightweight Commands): no changes foundCommit
API calls: unchanged for all 7 commands. Binary size: 134.7 MB, unchanged. Details: timing ranges, API calls per command, slowest phasesTiming ranges
API calls per command
Slowest phasesNo command moved beyond noise, so there are no phase deltas. Comment |
There was a problem hiding this comment.
Superseded by a newer AI review
🤖 AI Review
Confirmed two test-reliability issues, merging the duplicate Functions warm-up reports. The new hook never executes its Effect, and the Database fixture still depends on GitHub for uncached archives.
Findings
| Severity | Location | Category | Sources | Claim |
|---|---|---|---|---|
| 🟡 MINOR | packages/stack/src/services/Functions.integration.test.ts:160 |
test-reliability |
claude+codex | The beforeAll hook returns a lazy Effect without executing it, so the artifact warm-up never runs. A cold download still occurs inside the symlink test's 30-second timeout. |
| 🟡 MINOR | packages/stack/src/services/Database.integration.test.ts:402 |
test-reliability |
claude | The manifest fallback leaves archive acquisition dependent on GitHub. An uncached synthetic revision can still fail when GitHub remains unavailable, even if the published archive is available on S3. |
Findings outside the diff
- 🟡 MINOR
packages/stack/src/services/Database.integration.test.ts:402— The manifest fallback leaves archive acquisition dependent on GitHub. An uncached synthetic revision can still fail when GitHub remains unavailable, even if the published archive is available on S3.
Stats
Claude findings: 2 · Codex findings: 1 · Confirmed: 2 · Refuted: 0 · Uncertain: 0
Models: claude-opus-5-5 + gpt-6.1-sol · Trigger: auto · Workflow run
This review runs once per PR. A maintainer can request another with a /ai-review comment.
There was a problem hiding this comment.
🤖 AI Review
Both independent reviews were available. After merging the duplicate Functions finding, two minor test-reliability issues are confirmed: the warm-up Effect is never executed, and the Database fallback leaves archive downloads dependent on GitHub. Integration tests were not run; dependencies are absent.
Findings
| Severity | Location | Category | Sources | Claim |
|---|---|---|---|---|
| 🟡 MINOR | packages/stack/src/services/Functions.integration.test.ts:160 |
test-reliability |
claude+codex | The new beforeAll hook returns a lazy Effect without executing it, so its 120-second timeout does not cover the artifact download. A cold download still occurs inside the test's original 30-second timeout. |
| 🟡 MINOR | packages/stack/src/services/Database.integration.test.ts:385 |
test-reliability |
claude | The new S3 fallback covers only manifest fetching. On a cold cache, the synthetic next-revision archive still redirects exclusively to GitHub, so GitHub download failures can still fail the test. |
Stats
Claude findings: 2 · Codex findings: 1 · Confirmed: 2 · Refuted: 0 · Uncertain: 0
Models: claude-opus-5-5 + gpt-6.1-sol · Trigger: manual · Workflow run
This review runs once per PR. A maintainer can request another with a /ai-review comment.
|
On the outside-diff finding ( Generated by Claude Code |
Flaky test check: ✅ no flaky testsCommit Each execution is a separate Vitest process; |
TL;DR
Two Podman stack integration tests failed when GitHub Releases was slow or returned 5xx.
Database.integration.test.ts › restarts initialized data on a new release revision of its build and refuses another build: failed withSchemaError: Expected a valid JSON string. The test fetched the published manifest from GitHub and decoded the body without checking the status. It now rejects non-2xx responses, which names the URL and status. It also falls back to the S3 mirror the stack itself uses and checks the body against the published manifest pin.Functions.integration.test.ts › service catalog › destroy survives a symlink planted where its runtime directory used to be: timed out at 30s. A cold edge-runtime download kept gettingHTTP 504from GitHub before it fell back to S3. The download now runs in abeforeAllwith its own 120s guard, so the test only measuresprepareandremoveDataagainst a warm cache.ref
spotted in:
Generated by Claude Code