Preserve PHPUnit bootstrap integration process failures
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 88/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- testing
Research direction
Start in tests/playground-phpunit-bootstrap-failure.integration.test.ts and inspect the catch path handling failed recipe-run processes. Run the standalone integration test and the full smoke aggregate. Done means structured failure JSON remains available, while empty or absent stdout preserves the original process error and its diagnostics.
Written by the indexing model from the issue text.
Description
Problem
When tests/playground-phpunit-bootstrap-failure.integration.test.ts receives a failed recipe-run process with empty stdout, its catch path calls JSON.parse(""). That replaces the original CLI process failure with SyntaxError: Unexpected end of JSON input, hiding stderr, exit status, timeout, and command context needed to diagnose the runtime failure.
This occurred in the full smoke aggregate while verifying #2464 and #2466. The test passes standalone, so preserving the original failure is required to diagnose any recurrence under aggregate load.
Desired outcome
Parse recipe-run output only when non-empty JSON exists. Return structured failed recipe output when available; otherwise rethrow the original process error unchanged.
Acceptance criteria
- Empty or absent stdout does not enter
JSON.parse. - Structured recipe failure JSON remains the primary assertion input.
- Unstructured process failures retain their original diagnostics.
- The standalone integration and full smoke aggregate pass.
AI assistance
GPT-5.6 Sol via OpenCode identified the masking parser after the aggregate failure and drafted this diagnostic repair under Chris Huber's direction.
- Dominant language
- TypeScript
- Stars
- 17
- Forks
- 4
- Avg merge
- 53m
- Merged PRs (30d)
- 114
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.
More from Automattic/wp-codebox
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Automattic/wp-codebox#2466 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Automattic/wp-codebox#2105 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Automattic/wp-codebox#2061 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Automattic/wp-codebox#1714 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Automattic/wp-codebox#2506 ·
All issues in Automattic/wp-codebox
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
copse-dev/agent-pane#2953 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·