feat(maestro): shared WalletConnect Pay E2E test actions#77
Draft
ignaciosantise wants to merge 11 commits intomasterfrom
Draft
feat(maestro): shared WalletConnect Pay E2E test actions#77ignaciosantise wants to merge 11 commits intomasterfrom
ignaciosantise wants to merge 11 commits intomasterfrom
Conversation
Add three reusable composite actions for Maestro Pay E2E testing across wallet platforms (React Native, Kotlin, Swift, Flutter): - maestro/setup: Install Maestro CLI - maestro/pay-tests: Copy 11 test flows + 3 sub-flows + 2 scripts - maestro/run: Execute tests with secret passthrough + artifact upload Includes README documenting all 28 required testIDs, 6 merchant secrets, test input field requirement with RN reference implementation, test catalog, and iOS/Android usage examples. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
Author
|
@claude review |
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
Draft
3 tasks
There was a problem hiding this comment.
Pull request overview
This PR adds reusable GitHub composite actions and shared Maestro flows to standardize WalletConnect Pay E2E testing across wallet implementations (RN/Kotlin/Swift/Flutter), plus documentation describing required UI testIDs and CI setup.
Changes:
- Added
maestro/setup,maestro/pay-tests, andmaestro/runcomposite actions for installing Maestro, copying shared flows into a workspace, and running Pay tests with secrets + artifact upload. - Added shared Maestro Pay test catalog (flows, sub-flows, helper scripts) covering core payment lifecycle and error/edge cases.
- Added a README documenting required testIDs, secrets, and iOS/Android usage patterns.
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| maestro/setup/action.yml | Composite action to install Maestro CLI (optionally pinned version). |
| maestro/run/action.yml | Composite action to run Maestro tests with WPAY env passthrough and upload artifacts/logs. |
| maestro/pay-tests/action.yml | Composite action to copy shared Pay flows/scripts into a consumer repo workspace. |
| maestro/pay-tests/README.md | Documentation for required testIDs, secrets, and CI usage examples. |
| maestro/pay-tests/.maestro/scripts/create-payment.js | Maestro JS helper to create a Pay payment via API and expose gateway URL/payment id. |
| maestro/pay-tests/.maestro/scripts/cancel-payment.js | Maestro JS helper to cancel a Pay payment via API. |
| maestro/pay-tests/.maestro/pay_single_option_nokyc.yaml | Flow: single-option, no-KYC happy path. |
| maestro/pay-tests/.maestro/pay_single_option_nokyc_deeplink.yaml | Flow: deep link entry happy path for single-option, no-KYC. |
| maestro/pay-tests/.maestro/pay_multiple_options_nokyc.yaml | Flow: multi-option selection (no KYC) + verification. |
| maestro/pay-tests/.maestro/pay_multiple_options_kyc.yaml | Flow: multi-option selection with KYC webview steps. |
| maestro/pay-tests/.maestro/pay_kyc_back_navigation.yaml | Flow: validates back/close header actions during KYC. |
| maestro/pay-tests/.maestro/pay_insufficient_funds.yaml | Flow: insufficient funds error path. |
| maestro/pay-tests/.maestro/pay_expired_link.yaml | Flow: expired payment link error path using a hardcoded URL. |
| maestro/pay-tests/.maestro/pay_double_scan.yaml | Flow: pay once, then re-open the same link to verify “already completed” handling. |
| maestro/pay-tests/.maestro/pay_cancelled.yaml | Flow: cancelled payment error path using a hardcoded URL. |
| maestro/pay-tests/.maestro/pay_cancel_from_review.yaml | Flow: cancel server-side while on review screen, then attempt to pay. |
| maestro/pay-tests/.maestro/pay_cancel_from_kyc.yaml | Flow: cancel server-side during KYC, then proceed to observe cancelled result. |
| maestro/pay-tests/.maestro/flows/pay_open_via_deeplink.yaml | Sub-flow: open the generated gateway URL via deep link. |
| maestro/pay-tests/.maestro/flows/pay_open_and_paste_url.yaml | Sub-flow: launch app, open scanner modal, paste URL via test input. |
| maestro/pay-tests/.maestro/flows/pay_confirm_and_verify.yaml | Sub-flow: tap Pay, wait for success, dismiss result. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Add `set -euo pipefail` to setup and pay-tests action scripts - Add explicit env var checks in create-payment.js (matching cancel-payment.js) - Remove non-existent maestro-output.log from Android artifact upload example Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add setup and run instructions for local development, including the auto-download script and .env.maestro secrets file pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ignaciosantise
commented
Apr 8, 2026
ignaciosantise
commented
Apr 8, 2026
ignaciosantise
commented
Apr 8, 2026
ignaciosantise
commented
Apr 8, 2026
ignaciosantise
commented
Apr 8, 2026
ignaciosantise
commented
Apr 8, 2026
- Add extendedWaitUntil after launchApp in paste-URL flow to wait for app to fully load before tapping - Use stopApp + openLink in deeplink flow instead of bare openLink to avoid Android stale intent race condition Ported from reown-com/react-native-examples#467 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Bump extendedWaitUntil timeout for "Add your personal details" from 10s to 30s in all three KYC flows — the webview can be slow to load on CI. Ported from reown-com/react-native-examples#467 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
maestro/setup— Install Maestro CLImaestro/pay-tests— Copy 11 test flows + 3 sub-flows + 2 helper scripts into consumer workspacemaestro/run— Execute tests with WalletConnect Pay secret passthrough + artifact uploadContext
Built from the Maestro E2E tests developed in react-native-examples across PRs #452, #455, #457, #458. These tests cover the full WalletConnect Pay lifecycle: happy paths (single/multi option, KYC/no-KYC), error handling (insufficient funds, expired, cancelled), navigation (back/close buttons), edge cases (double scan, deep links), and server-side cancellation scenarios.
Test plan
WalletConnect/actions/maestro/setup@feat/maestro-pay-actions,WalletConnect/actions/maestro/pay-tests@feat/maestro-pay-actions, andWalletConnect/actions/maestro/run@feat/maestro-pay-actionsmaestro testcommand works with copied flows🤖 Generated with Claude Code