Prepare release 1.2.0 local sync#8
Conversation
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
|
Warning Rate limit exceeded
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 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (58)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
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
IntegrationTestCaseto 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.
| 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)); |
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
Dependency on other PRs
None.
Risk/impact
Low risk as this focuses on release preparation and validation.