Skip to content

fix(test): use the shared 50MB exec helper in every e2e test - #768

Merged
vscheuber merged 1 commit into
mainfrom
fix/e2e-shared-exec-maxbuffer
Oct 8, 2026
Merged

vscheuber merged 1 commit into
mainfrom
fix/e2e-shared-exec-maxbuffer

Conversation

@vscheuber

Copy link
Copy Markdown
Contributor

Summary

Unblocks the 5.0.0-4 release run (Test (26) failed: theme-import.e2e.test.js → RangeError: stderr maxBuffer length exceeded).

Cause. The theme fixtures were recorded 2026-07-10 and crossed the 90-day expiry on Oct 8 (the previous CI runs on Oct 7 passed on identical code). Expiry is warn-only, but each replayed request from an expired recording prints a full request/response blob to stderr, and frodo theme import --all-separate replays enough requests to exceed Node's 1 MB default child_process buffer. theme-import.e2e.test.js used its own promisify(cp.exec) rather than the shared helper in TestUtils.js (50 MB).

Fix. Export exec from test/e2e/utils/TestUtils.js and switch the 122 e2e files that defined their own bare promisify(cp.exec) to it, so the next batch of aging fixtures can't trip the same limit (124 of 261 files had the pattern). Intentionally unchanged: session.e2e.test.js (local node -e seeding, no network) and npm-entry.smoke.e2e.test.js (no Polly traffic).

No source, fixture, export, or snapshot changes — test imports only (123 files).

Not addressed here

743 recording dirs are now past the 90-day mark. They stay quiet only because of the larger buffer; the noisy expiry warnings will remain until the fixtures are re-recorded against a live tenant (needs credentials — npm run test:record:cloud).

Test plan

  • theme-import, config-manager-push-terms-and-conditions, session pass together (23/23)
  • Full suite: 633 suites / 1828 tests / 8486 snapshots pass locally

🤖 Generated with Claude Code

Fixtures recorded on 2026-07-10 crossed the 90-day expiry on Oct 8. With
expiryStrategy=warn, every replayed request from an expired recording
prints a full request/response blob to stderr, and
`frodo theme import --all-separate` replays enough requests to exceed
Node's 1MB default child_process maxBuffer. theme-import.e2e.test.js
built its own `promisify(cp.exec)` instead of the shared helper (50MB) and
failed with `RangeError: stderr maxBuffer length exceeded`, blocking the
5.0.0-4 release run.

Export `exec` from test/e2e/utils/TestUtils.js and switch the 122 e2e
test files that defined their own bare `promisify(cp.exec)` over to it, so
the next batch of fixtures to age out cannot trip the same limit.
session.e2e.test.js (local-only `node -e` seeding, no network) and
npm-entry.smoke.e2e.test.js (no Polly traffic) are intentionally unchanged.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@vscheuber
vscheuber merged commit 00ae9d2 into main Oct 8, 2026
13 checks passed
@vscheuber
vscheuber deleted the fix/e2e-shared-exec-maxbuffer branch October 8, 2026 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant