Fix AI E2E tests for blocked XML-RPC endpoints#25839
Conversation
Generated by 🚫 Danger |
bdd5c95 to
3ad6f14
Compare
469d52a to
72778c3
Compare
72778c3 to
dda606e
Compare
|
Thanks for looking into the issue, Ian! The E2E test actually caught a bug, which is fixed in trunk. We should not need to do anything about the test suite now. I expect today's run to pass. |
There was a problem hiding this comment.
Pull request overview
This PR updates the AI-driven iOS simulator E2E test harness to better handle test sites where XML-RPC is blocked (or intercepted by an edge 429), ensuring the app uses the Core REST editor path and preventing REST-based “mutation bypass” of UI failures.
Changes:
- Add an XML-RPC availability preflight (with an explicit “edge 429” allowance) and a small contract-test script to lock in the detector behavior.
- Pin
simulator-llm-pilotinstallation to a specific upstream revision and add a runtime check for required CLI support (--rest-api-policy). - Update AgentTests markdown scenarios and agent instructions to reflect the blocked XML-RPC contract and stricter REST boundaries.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
Tests/AgentTests/ui-tests/text-post-publish.md |
Updates publish assertions to require success without XML-RPC errors and not depend on a post-publish confirmation screen. |
Tests/AgentTests/ui-tests/post-with-category-and-tag.md |
Aligns prerequisites/cleanup with blocked XML-RPC and removes reliance on a specific category name. |
Tests/AgentTests/ui-tests/create-scheduled-post.md |
Adds blocked XML-RPC prerequisite and clarifies success criteria without extra confirmation UI. |
Tests/AgentTests/ui-tests/create-blank-page.md |
Adds blocked XML-RPC prerequisite and clarifies publish success criteria. |
Tests/AgentTests/test-ai-e2e-contracts.sh |
New bash contract tests for XML-RPC detection/preflight helpers. |
Tests/AgentTests/app-instructions.md |
Adds REST API usage boundaries (read-only verification; DELETE-only cleanup). |
Scripts/ci/install-simulator-llm-pilot.sh |
Fetches and installs simulator-llm-pilot from a pinned ref (or local override). |
.buildkite/nightly.yml |
Configures nightly AI E2E runs to accept an edge 429 from the XML-RPC endpoint. |
.buildkite/commands/run-ai-e2e-tests.sh |
Implements XML-RPC preflight, runs contract tests, enforces REST API policy, and improves script structure via main(). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -23,11 +23,21 @@ | |||
| # SIMULATOR_NAME Simulator to boot if none running (default: iPhone 16) | |||
|
| App Name | WordPress | |
| Configuration | Release-Alpha | |
| Build Number | 33478 | |
| Version | PR #25839 | |
| Bundle ID | org.wordpress.alpha | |
| Commit | 783c038 | |
| Installation URL | 1bj1oj48pvo2g |
|
| App Name | Jetpack | |
| Configuration | Release-Alpha | |
| Build Number | 33478 | |
| Version | PR #25839 | |
| Bundle ID | com.jetpack.alpha | |
| Commit | 783c038 | |
| Installation URL | 2u6dl5h426jn8 |
Does this mean your recommendation is to close this PR? Was the blocked XML-RPC endpoint something that the app should have been able to handle internally (hence the UI test failure fix) instead of something that we should handle in the tests scaffolding? |


Description
Check the XML-RPC endpoint contract, require the Core REST editor path, and use a request-time REST policy to prevent mutation bypasses.
Also pins simulator-llm-pilot to a
trunkrelease.