feat(rn_cli_wallet): refactor Maestro Pay E2E tests with inline payment creation#455
feat(rn_cli_wallet): refactor Maestro Pay E2E tests with inline payment creation#455ignaciosantise wants to merge 7 commits intomainfrom
Conversation
…nt creation - Replace shell-based payment creation with JS scripts run inside Maestro flows - Add separate test flows for single/multi option, KYC/no-KYC, and deeplink scenarios - Pass WalletConnect Pay API keys as Maestro env vars instead of pre-creating payments - Add testIDs to PaymentOptionsModal and Scanner components for E2E targeting - Extend balance-check workflow to monitor OP token on Optimism - Set Internal scheme to Release build configuration Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ignaciosantise's task in 43s —— View job PR Review
Found 4 issue(s)Issue 1:
|
cast call returns hex-encoded values which bc cannot parse. Use `cast to-dec` to convert to decimal before arithmetic. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Refactors the rn_cli_wallet WalletConnect Pay Maestro E2E suite to create payments inline (via Maestro JS runScript) and adds more granular Pay flow coverage (single-option, multi-option, KYC, and deeplink), while updating app UI components with additional testID/accessibility hooks and adjusting CI workflows.
Changes:
- Replaced the standalone
scripts/create-payment.shpre-step with.maestro/scripts/create-payment.jsand reorganized Maestro Pay tests into reusable sub-flows. - Added/extended
testID(and someaccessibilityLabel) props across Pay UI components to improve Maestro targeting. - Updated CI workflows and balance monitoring (USDC on Base + OP on Optimism) and adjusted the iOS internal scheme launch configuration.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| wallets/rn_cli_wallet/src/modals/ScannerOptionsModal.tsx | Shows the test URL input in test mode across platforms for Maestro automation. |
| wallets/rn_cli_wallet/src/modals/PaymentOptionsModal/SelectOptionView.tsx | Adds option indexing + testIDs and “info required” badge testID for Maestro. |
| wallets/rn_cli_wallet/src/modals/PaymentOptionsModal/ReviewPaymentView.tsx | Adds testIDs/accessibility labels to support verifying selection and pay CTA. |
| wallets/rn_cli_wallet/src/modals/PaymentOptionsModal/index.tsx | Gates header info button and adds testID for Maestro selection. |
| wallets/rn_cli_wallet/src/components/Button.tsx | Plumbs accessibilityLabel through the shared Button wrapper. |
| wallets/rn_cli_wallet/src/components/ActionButton.tsx | Plumbs accessibilityLabel through ActionButton to underlying Button. |
| wallets/rn_cli_wallet/README.md | Updates local Maestro invocation examples for new env vars + tags flag. |
| wallets/rn_cli_wallet/ios/RNWeb3Wallet.xcodeproj/xcshareddata/xcschemes/RNWallet-Internal.xcscheme | Changes LaunchAction build configuration to Release. |
| wallets/rn_cli_wallet/AGENTS.md | Updates Maestro Pay test file inventory and local run instructions. |
| scripts/create-payment.sh | Removes obsolete shell-based payment creation helper. |
| .maestro/scripts/create-payment.js | Adds Maestro JS script to create payments via WalletConnect Pay API. |
| .maestro/pay_single_option_nokyc.yaml | New single-option no-KYC Pay flow. |
| .maestro/pay_single_option_nokyc_deeplink.yaml | New deeplink variant of single-option no-KYC Pay flow. |
| .maestro/pay_multiple_options_nokyc.yaml | New multi-option no-KYC Pay flow. |
| .maestro/pay_multiple_options_kyc.yaml | New multi-option KYC Pay flow (includes webview steps). |
| .maestro/pay_confirm.yaml | Removes old monolithic Pay confirm flow. |
| .maestro/flows/pay_open_via_deeplink.yaml | Adds shared deeplink open + wait-for-merchant-info sub-flow. |
| .maestro/flows/pay_open_and_paste_url.yaml | Adds shared scanner open + paste/type URL sub-flow. |
| .maestro/flows/pay_confirm_and_verify.yaml | Adds shared confirm + success verification sub-flow. |
| .github/workflows/e2e-balance-check.yml | Extends balance check workflow to include OP on Optimism. |
| .github/workflows/ci_e2e_walletkit.yaml | Updates CI to run new Maestro flows and sets ENV_TEST_MODE=true for E2E. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
wallets/rn_cli_wallet/src/modals/PaymentOptionsModal/SelectOptionView.tsx
Show resolved
Hide resolved
cast call with a decoded return type already outputs decimal — the extra `cast to-dec` was choking on the non-hex input. Just trim whitespace instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Pay tests need USDC on both Base and Optimism, not OP token. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pass WPAY_CUSTOMER_KEY_MULTI_NOKYC and WPAY_MERCHANT_ID_MULTI_NOKYC to both iOS and Android Maestro invocations so pay_multiple_options_nokyc.yaml can run in CI. Also fix misleading comment in pay_open_via_deeplink sub-flow. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Android emulator needs 7.2 GB for userdata but only ~4 GB was left after the APK build. Free unused SDK/toolchain dirs and set disk-size to 4096M. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
iOS: Enable Match development signing in build_for_simulator so Associated Domains entitlement is embedded and universal links work. Android: Add secrets.properties and internal keystore to E2E workflow. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
pay_open_and_paste_url,pay_open_via_deeplink,pay_confirm_and_verify) to reduce duplicationtestIDprops toActionButton,Button,SelectOptionView,ReviewPaymentView, andScannerOptionsModalfor Maestro targetinge2e-balance-checkworkflow to also monitor OP token balance on OptimismRNWallet-InternalXcode scheme to useReleasebuild configurationNew GitHub Secrets Required
WPAY_CUSTOMER_KEY_MULTI_KYCWPAY_MERCHANT_ID_MULTI_KYCWPAY_CUSTOMER_KEY_SINGLE_NOKYCWPAY_MERCHANT_ID_SINGLE_NOKYCNew GitHub Variables (optional)
OP_THRESHOLD_UNITS500000000000000000(0.5 OP)Test plan
🤖 Generated with Claude Code