Preserve PHPUnit bootstrap integration process failures

Open Beginner friendly
#2,467 0 comments 0 reactions 0 assignees View on GitHub

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

  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.

More from Automattic/wp-codebox

All issues in Automattic/wp-codebox

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.