Skip to content

test: real-WordPress smoke harness has cascading pre-existing failures (vendor-stale agents-api class, handler_slug fixture) — fails first broken smoke and masks the rest #2656

Description

@chubes4

Context

The CI homeboy / Test real-WordPress (wp-codebox playground) smoke phase runs tests/*-smoke.php sequentially and aborts on the first smoke that fails, so latent breakages are revealed one at a time as each is fixed. #2643 fixed the Cannot redeclare class (PRs #2647, #2651). With those gone, the NEXT latent failures surface:

Known remaining failures (all pre-existing on main, unrelated to product PRs)

  1. tests/agent-bundle-artifact-rebase-smoke.phpClass "WP_Agent_Package_Artifact_Hasher" not found. The smoke require_onces vendor/wordpress/agents-api/src/Packages/class-wp-agent-package-artifact-hasher.php (line 30) but the class isn't found in the CI playground — the vendored agents-api in the harness is stale / missing that file (or the path/classname drifted). Likely needs a composer update wordpress/agents-api in the harness, or the smoke updated to the current class location/name.

  2. tests/agent-bundle-portable-update-smoke.phpflow file step uses unsupported legacy field handler_slug; use handler_slugs and handler_configs AND 5+ assertion failures (existing stale flow payload normalizes step key, package CLI stages PendingActions...). The flow-file fixture uses the legacy handler_slug field the loader now rejects; the normalize/package-CLI assertions reflect product-behavior drift. (Confirmed red on main when run with vendor present.)

Why this matters

These mask each other and make homeboy / Test red on essentially every data-machine PR, forcing merges-past-red all session. Each is independently pre-existing on main.

Fix approach

  • Audit the FULL smoke suite under the real-WP harness (not just the first failure): run each tests/*-smoke.php in a real-WP context and collect ALL failures, so they can be fixed in one pass instead of one-PR-at-a-time.
  • For vendor-stale class errors: sync the harness's vendored agents-api (composer update) or update the smoke's require path/classname.
  • For stale fixtures (handler_slug): migrate to handler_slugs/handler_configs.
  • For product-behavior-drift assertions: update the expected values to current behavior (or fix the product if the drift is a real regression).

Acceptance

  • homeboy / Test goes green on a no-op PR against main (i.e. the harness is clean, not just "clean except known failures").

Constraints

  • PR only. Conventional commits (test:/fix:). Never edit CHANGELOG.md / version strings.

Follow-up to #2643 (which fixed the redeclare class).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions