Skip to content

Prepare release 1.2.0 local sync#8

Merged
soulevilx merged 3 commits into
developfrom
fix/prepare-release-1.2.0-local-sync
May 17, 2026
Merged

Prepare release 1.2.0 local sync#8
soulevilx merged 3 commits into
developfrom
fix/prepare-release-1.2.0-local-sync

Conversation

@soulevilx
Copy link
Copy Markdown
Contributor

What changed

This PR prepares version 1.2.0 with local synchronization updates.

Why

Necessary updates for the 1.2.0 release and synchronization logic.

How

Updated dependencies via composer upgrade and ensured all quality checks pass.

Files/areas touched

Various files related to 1.2.0 release preparations.

Validation commands and results

  • composer lint: passed
  • composer test: passed (178 tests, 612 assertions)
  • composer security: passed
  • composer quality: passed
  • composer test:coverage: passed at 97.0%
  • composer test:coverage-map: passed
  • composer test:integration: skipped (82 skipped due missing local integration environment)
  • composer test:integration:extended: skipped (11 skipped due missing local integration environment)

Dependency on other PRs

None.

Risk/impact

Low risk as this focuses on release preparation and validation.

@qodo-code-review
Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 17, 2026

Warning

Rate limit exceeded

@soulevilx has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 13 minutes and 49 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: aeace3b8-3efe-4ce7-b305-b44dddb7a962

📥 Commits

Reviewing files that changed from the base of the PR and between 1b230cf and b6205f8.

⛔ Files ignored due to path filters (1)
  • docker/wordpress/fixtures/media/test-image.png is excluded by !**/*.png
📒 Files selected for processing (58)
  • .env.testing.example
  • .github/workflows/integration-tests.yml
  • docker/wordpress/docker-compose.integration.yml
  • docker/wordpress/fixtures/media/test-text.txt
  • docker/wordpress/plugins/jooservices-sdk-test-endpoints/jooservices-sdk-test-endpoints.php
  • docker/wordpress/scripts/provision-extended.sh
  • docker/wordpress/scripts/run-extended-integration-tests.sh
  • docker/wordpress/scripts/run-integration-tests.sh
  • docker/wordpress/scripts/seed.sh
  • docker/wordpress/scripts/setup.sh
  • docker/wordpress/scripts/teardown.sh
  • docker/wordpress/scripts/wait-for-wordpress.sh
  • phpunit.xml
  • tests/ExtendedIntegration/Services/BlockRendererServiceExtendedIntegrationTest.php
  • tests/ExtendedIntegration/Services/OptionalRouteExtendedIntegrationTest.php
  • tests/ExtendedIntegration/Services/PluginsServiceExtendedIntegrationTest.php
  • tests/ExtendedIntegration/Support/ExtendedIntegrationTestCase.php
  • tests/Fixtures/wordpress-plugins/sdk-test-plugin/sdk-test-plugin.php
  • tests/Integration/Auth/ApplicationPasswordAuthenticationIntegrationTest.php
  • tests/Integration/Contracts/WordPressRestCoverageIntegrationTest.php
  • tests/Integration/Environment/WordPressEnvironmentTest.php
  • tests/Integration/Security/ProductionSafetyGuardIntegrationTest.php
  • tests/Integration/Services/ApplicationPasswordsServiceIntegrationTest.php
  • tests/Integration/Services/BlockDirectoryServiceIntegrationTest.php
  • tests/Integration/Services/BlockRendererServiceIntegrationTest.php
  • tests/Integration/Services/BlockTypesServiceIntegrationTest.php
  • tests/Integration/Services/BlocksServiceIntegrationTest.php
  • tests/Integration/Services/CategoriesServiceIntegrationTest.php
  • tests/Integration/Services/CommentsServiceIntegrationTest.php
  • tests/Integration/Services/CustomEndpointServiceIntegrationTest.php
  • tests/Integration/Services/DiscoveryServiceIntegrationTest.php
  • tests/Integration/Services/GlobalStylesServiceIntegrationTest.php
  • tests/Integration/Services/MediaServiceIntegrationTest.php
  • tests/Integration/Services/MenuLocationsServiceIntegrationTest.php
  • tests/Integration/Services/NavMenuItemsServiceIntegrationTest.php
  • tests/Integration/Services/NavMenusServiceIntegrationTest.php
  • tests/Integration/Services/NavigationsServiceIntegrationTest.php
  • tests/Integration/Services/PagesServiceIntegrationTest.php
  • tests/Integration/Services/PluginsServiceIntegrationTest.php
  • tests/Integration/Services/PostTypesServiceIntegrationTest.php
  • tests/Integration/Services/PostsServiceIntegrationTest.php
  • tests/Integration/Services/RawReadServicesIntegrationTest.php
  • tests/Integration/Services/RevisionsServiceIntegrationTest.php
  • tests/Integration/Services/SearchServiceIntegrationTest.php
  • tests/Integration/Services/SettingsServiceIntegrationTest.php
  • tests/Integration/Services/SidebarsServiceIntegrationTest.php
  • tests/Integration/Services/SiteHealthServiceIntegrationTest.php
  • tests/Integration/Services/StatusesServiceIntegrationTest.php
  • tests/Integration/Services/TagsServiceIntegrationTest.php
  • tests/Integration/Services/TaxonomiesServiceIntegrationTest.php
  • tests/Integration/Services/TemplatePartsServiceIntegrationTest.php
  • tests/Integration/Services/TemplatesServiceIntegrationTest.php
  • tests/Integration/Services/ThemesServiceIntegrationTest.php
  • tests/Integration/Services/UsersServiceIntegrationTest.php
  • tests/Integration/Services/WidgetTypesServiceIntegrationTest.php
  • tests/Integration/Services/WidgetsServiceIntegrationTest.php
  • tests/Integration/Support/IntegrationTestCase.php
  • tests/TestCase.php
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/prepare-release-1.2.0-local-sync

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@soulevilx soulevilx requested a review from Copilot May 17, 2026 00:16
@soulevilx soulevilx merged commit 9d9c163 into develop May 17, 2026
7 checks passed
@soulevilx soulevilx deleted the fix/prepare-release-1.2.0-local-sync branch May 17, 2026 00:17
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR expands the SDK’s local/Docker-based integration testing infrastructure as part of the 1.2.0 release prep, including a safer integration test harness (local-only + marker-gated), a new extended integration suite, and CI workflow wiring.

Changes:

  • Introduces IntegrationTestCase to centralize env loading, local-safety checks, WordPress client caching, and resource cleanup.
  • Adds broad REST service integration coverage plus an “ExtendedIntegration” suite for optional capabilities (plugins, block themes, dynamic blocks).
  • Adds Docker Compose environment + scripts and a GitHub Actions workflow to run Docker-based integration tests.

Reviewed changes

Copilot reviewed 58 out of 59 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/TestCase.php Refactors the shared integration base test case to inherit from the new integration harness and delegate cleanup.
tests/Integration/Support/IntegrationTestCase.php Adds centralized integration environment loading, safety checks, WordPress client access, helpers, and cleanup.
tests/Integration/Services/WidgetTypesServiceIntegrationTest.php Adds integration coverage for widget types list/get.
tests/Integration/Services/WidgetsServiceIntegrationTest.php Adds integration coverage for widgets listing, gated by route availability.
tests/Integration/Services/UsersServiceIntegrationTest.php Adds integration coverage for users me/list/get/create/update.
tests/Integration/Services/ThemesServiceIntegrationTest.php Adds integration coverage for themes endpoints, gated by route availability.
tests/Integration/Services/TemplatesServiceIntegrationTest.php Adds integration coverage for templates listing, gated by route availability.
tests/Integration/Services/TemplatePartsServiceIntegrationTest.php Adds integration coverage for template parts listing, gated by route availability.
tests/Integration/Services/TaxonomiesServiceIntegrationTest.php Adds integration coverage for taxonomy list/get and iteration helpers.
tests/Integration/Services/TagsServiceIntegrationTest.php Adds integration coverage for tag CRUD.
tests/Integration/Services/StatusesServiceIntegrationTest.php Adds integration coverage for statuses list/get and helper methods.
tests/Integration/Services/SiteHealthServiceIntegrationTest.php Adds integration coverage for site health diagnostic endpoints.
tests/Integration/Services/SidebarsServiceIntegrationTest.php Adds integration coverage for sidebars listing.
tests/Integration/Services/SettingsServiceIntegrationTest.php Adds integration coverage for settings get/update with restore in finally.
tests/Integration/Services/SearchServiceIntegrationTest.php Adds integration coverage for search list/all/cursor/each behaviors.
tests/Integration/Services/RevisionsServiceIntegrationTest.php Adds integration coverage for revisions listing/get with skip when none generated.
tests/Integration/Services/RawReadServicesIntegrationTest.php Adds integration coverage asserting raw-array return shapes for admin/editor endpoints and gated routes.
tests/Integration/Services/PostTypesServiceIntegrationTest.php Adds integration coverage for post types list/get and helper methods.
tests/Integration/Services/PostsServiceIntegrationTest.php Adds integration coverage for posts CRUD plus pagination/iteration helpers.
tests/Integration/Services/PluginsServiceIntegrationTest.php Adds integration coverage for plugins list/get with version/theme-specific skip handling.
tests/Integration/Services/PagesServiceIntegrationTest.php Adds integration coverage for pages CRUD.
tests/Integration/Services/NavMenusServiceIntegrationTest.php Adds integration coverage for nav menu CRUD when route exists.
tests/Integration/Services/NavMenuItemsServiceIntegrationTest.php Adds integration coverage for menu items listing when route exists.
tests/Integration/Services/NavigationsServiceIntegrationTest.php Adds integration coverage for navigations listing when route exists.
tests/Integration/Services/MenuLocationsServiceIntegrationTest.php Adds integration coverage for menu locations listing when route exists.
tests/Integration/Services/MediaServiceIntegrationTest.php Adds integration coverage for media upload/get/list/delete and invalid path behavior.
tests/Integration/Services/GlobalStylesServiceIntegrationTest.php Adds integration coverage for global styles listing when route exists.
tests/Integration/Services/DiscoveryServiceIntegrationTest.php Adds integration coverage for REST discovery index/routes/schema.
tests/Integration/Services/CustomEndpointServiceIntegrationTest.php Adds integration coverage for custom endpoint CRUD against the test plugin routes.
tests/Integration/Services/CommentsServiceIntegrationTest.php Adds integration coverage for comment CRUD (including list).
tests/Integration/Services/CategoriesServiceIntegrationTest.php Adds integration coverage for category CRUD.
tests/Integration/Services/BlockTypesServiceIntegrationTest.php Adds integration coverage for block types list/get.
tests/Integration/Services/BlocksServiceIntegrationTest.php Adds integration coverage for reusable blocks listing when route exists.
tests/Integration/Services/BlockRendererServiceIntegrationTest.php Adds integration coverage for block renderer with validation-aware skipping.
tests/Integration/Services/BlockDirectoryServiceIntegrationTest.php Adds integration coverage for block directory search when route exists.
tests/Integration/Services/ApplicationPasswordsServiceIntegrationTest.php Adds integration coverage for application password create/get/list/delete.
tests/Integration/Security/ProductionSafetyGuardIntegrationTest.php Adds a guard test ensuring env points to a local testing site with marker.
tests/Integration/Environment/WordPressEnvironmentTest.php Adds an environment smoke test for REST reachability + auth.
tests/Integration/Contracts/WordPressRestCoverageIntegrationTest.php Adds a contract test for required REST routes and optional route policy.
tests/Integration/Auth/ApplicationPasswordAuthenticationIntegrationTest.php Adds integration coverage for valid/invalid app password auth mapping.
tests/Fixtures/wordpress-plugins/sdk-test-plugin/sdk-test-plugin.php Adds a deterministic fixture plugin providing a dynamic block for extended tests.
tests/ExtendedIntegration/Support/ExtendedIntegrationTestCase.php Adds extended integration base utilities and capability-context helpers.
tests/ExtendedIntegration/Services/PluginsServiceExtendedIntegrationTest.php Adds deterministic extended coverage for fixture plugin reads.
tests/ExtendedIntegration/Services/OptionalRouteExtendedIntegrationTest.php Adds extended coverage for optional routes when provisioned.
tests/ExtendedIntegration/Services/BlockRendererServiceExtendedIntegrationTest.php Adds extended coverage for rendering the fixture dynamic block.
phpunit.xml Registers the new ExtendedIntegration PHPUnit testsuite.
docker/wordpress/scripts/wait-for-wordpress.sh Adds a helper script to wait for WordPress HTTP readiness.
docker/wordpress/scripts/teardown.sh Adds a helper script to tear down the integration docker-compose stack.
docker/wordpress/scripts/setup.sh Adds scripted WordPress installation/config + env file generation for tests.
docker/wordpress/scripts/seed.sh Adds deterministic seed data setup for integration tests.
docker/wordpress/scripts/run-integration-tests.sh Adds an orchestration script to boot Docker services and run integration tests.
docker/wordpress/scripts/run-extended-integration-tests.sh Adds orchestration for extended integration tests (incl. provisioning).
docker/wordpress/scripts/provision-extended.sh Adds provisioning for optional capabilities (block theme + fixture plugin).
docker/wordpress/plugins/jooservices-sdk-test-endpoints/jooservices-sdk-test-endpoints.php Adds deterministic REST endpoints + marker used by the integration harness.
docker/wordpress/fixtures/media/test-text.txt Adds a simple text media fixture (additional upload fixture coverage).
docker/wordpress/docker-compose.integration.yml Adds a dedicated docker-compose stack for WordPress integration testing.
.github/workflows/integration-tests.yml Adds a CI workflow to run Docker integration tests (extended suite on dispatch).
.env.testing.example Adds an example testing environment file for local integration setup.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +74 to +80
protected static function assertMarkerOptionExists(): void
{
try {
$marker = self::wordpressStatic()->custom()->get('/jooservices-sdk-test/v1/marker');
} catch (\Throwable $exception) {
self::markTestSkipped('Integration marker route is unavailable; run composer integration:setup.');
}
];

foreach ($optional as $route => $reason) {
$this->assertTrue(isset($routes[$route]) || is_string($reason));
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.

2 participants