|
1 | 1 | # Checkout Kit End-to-End Tests |
2 | 2 |
|
3 | | -This directory is reserved for cross-platform end-to-end tests. There is no runnable e2e suite checked in yet. |
| 3 | +This directory contains Maestro end-to-end smoke flows for Checkout Kit sample |
| 4 | +apps. |
4 | 5 |
|
5 | | -Planned coverage: |
| 6 | +The current runnable suite starts with React Native. It verifies a full guest |
| 7 | +checkout from a seeded cart in the sample app, through Shopify checkout, and |
| 8 | +back to the app after completion. |
6 | 9 |
|
7 | | -- Swift checkout presentation and protocol lifecycle. |
8 | | -- Android checkout presentation and protocol lifecycle. |
9 | | -- React Native wrapper behavior. |
10 | | -- Web component open/close and `checkout:*` events. |
| 10 | +## Run locally |
11 | 11 |
|
12 | | -Until this directory contains test code, use the platform test suites and sample apps described in each platform README. |
| 12 | +Run the matching command from the repo root. |
| 13 | + |
| 14 | +Run `dev up` first to provision the local toolchain. Install Maestro separately |
| 15 | +and make sure `maestro --version` succeeds before running these flows. |
| 16 | + |
| 17 | +React Native iOS: |
| 18 | + |
| 19 | +```bash |
| 20 | +dev rn e2e ios |
| 21 | +``` |
| 22 | + |
| 23 | +React Native Android: |
| 24 | + |
| 25 | +```bash |
| 26 | +dev rn e2e android |
| 27 | +``` |
| 28 | + |
| 29 | +The React Native commands start Metro if needed, build and launch the target |
| 30 | +sample app, then run Maestro. They require the standard storefront `.env` setup, |
| 31 | +but the E2E flow seeds its own cart through the bootstrap deep link; no manual |
| 32 | +sample cart setup is required. |
| 33 | + |
| 34 | +## Files |
| 35 | + |
| 36 | +- `config.yaml` configures Maestro for shared platform behavior. |
| 37 | +- `flows/` contains reusable Maestro subflows for app setup and checkout steps. |
| 38 | +- `tests/react-native/full-guest-checkout.yaml` composes the React Native guest |
| 39 | + checkout smoke test from those subflows. |
| 40 | + |
| 41 | +## Scope |
| 42 | + |
| 43 | +This smoke flow is intended to catch regressions in the React Native sample app |
| 44 | +integration surface: cart bootstrap, checkout presentation, checkout |
| 45 | +completion, and return to the sample app. It is not a replacement for |
| 46 | +checkout-web's browser-based coverage or for future native Swift and Android |
| 47 | +sample-app E2E coverage. |
0 commit comments