Skip to content

Meet WordPress VIP Integration Center conformance checks - #196

Draft
phpbits wants to merge 3 commits into
mainfrom
feature/19813979-vip-integration
Draft

phpbits wants to merge 3 commits into
mainfrom
feature/19813979-vip-integration

Conversation

@phpbits

@phpbits phpbits commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Gets the plugin through @automattic/vip-integration validate (0.2.0) for the WordPress VIP Integration Center. The first run on main failed 3 of 9 rules. This branch passes all rules the check can run.

Teamwork task: 19813979

VIP check rules

Rule Description Before After
1 Loads through the Starter Kit workflow: entry file and a Composer wordpress-plugin package Pass Pass
2 composer test runs PHPUnit and an e2e runner Fail Pass
3 Handoff manifest vip-manifest.yaml is present and complete Fail Pass
4 Config constant is documented and referenced in code Skipped Pass
5 Missing or invalid config is handled without a fatal error Skipped Pass
6 Docs show a valid and an incomplete config example Skipped Pass
7 CI matrix covers WP 6.9 and 7.0 and PHP 8.2 to 8.5 Fail Pass
8 Build and test commands are documented Pass Pass
9 Telemetry uses the Tracks helper only, with no secrets Skipped Skipped

Main was merged into this branch on 2026-10-22 to resolve a conflict in test.yml.

Result after this branch: 8 passed, 0 failed, 1 skipped. Rule 9 is skipped because the plugin records no telemetry. A skipped rule is not a pass.

Changes

  • vip-manifest.yaml: new handoff manifest (rule 3).
  • composer.json: composer test runs test:unit (PHPUnit) then test:e2e (npx playwright test) (rule 2).
  • .github/workflows/test.yml: the matrix is main's patched PHP 8.2 to 8.5 with WP 6.8, 6.9, 7.0 and latest. The PHPUnit job calls composer test:unit inside wp-env (rule 7).
  • includes/OAuth/Config.php: reads VIP_BEEHIIV_CONFIG. api_base_url resolves from that array, then the BEEHIIV_API_BASE_URL constant, then the default. Missing or invalid values are ignored (rules 4 and 5).
  • tests/phpunit/VipConfigTest.php and tests/phpunit/fixtures/: tests and four config fixtures (valid, minimal, incomplete, invalid).
  • README.md: new "WordPress VIP runtime config" section with valid and incomplete examples (rule 6).

Not covered

  • VIP's human reviews: the plugin and platform config-schema match, and the security review.
  • The manifest's documentation URL is https://www.beehiiv.com/support, a support page. VIP may want a plugin documentation page.
  • api_base_url is a staging and local override today, not a customer setting.
  • The CI matrix is now 16 jobs. I have not confirmed that wp-env can pull WP 6.9 or 7.0 images.
  • Submitting to VIP means contacting a Technology Partner Manager. This PR does not do that.

Testing

  • npx @automattic/vip-integration validate .: 8 passed, 0 failed, 1 not applicable.
  • PHPUnit in wp-env: 106 tests, 304 assertions, all passing.
  • npm run lint:php, lint:js and lint:css: clean.
  • The Playwright suite and the wider CI matrix have not run.

Add vip-manifest.yaml, run PHPUnit and Playwright from composer test,
and widen the CI matrix to WP 6.9/7.0 and PHP 8.2-8.5.
Read the VIP_BEEHIIV_CONFIG array for the API base URL, falling back to the
wp-config constant and the default. Missing or invalid config is ignored.
Add fixtures, tests, and README examples.
Keep main's patched PHP 8.2 to 8.5 matrix and add WP 6.9 and 7.0.
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