Skip to content

E2E: QA - app basic flow#7211

Draft
phyllis-sy-wu wants to merge 1 commit intopsyw-0402-E2E-cleanup-utilityfrom
psyw-0406-E2E-QA-app-basic-flow
Draft

E2E: QA - app basic flow#7211
phyllis-sy-wu wants to merge 1 commit intopsyw-0402-E2E-cleanup-utilityfrom
psyw-0406-E2E-QA-app-basic-flow

Conversation

@phyllis-sy-wu
Copy link
Copy Markdown
Contributor

@phyllis-sy-wu phyllis-sy-wu commented Apr 7, 2026

WHY are these changes introduced?

This implements the Apps section of the CLI pre-release QA checklist as an automated E2E test. The test exercises the full app lifecycle from scratch — no pre-provisioned apps, no fixed SHOPIFY_FLAG_CLIENT_ID.

WHAT is this pull request doing?

New test: app-basic-flow.spec.ts

A single end-to-end test covering the core QA flow in 9 steps:

Step CLI Command What it verifies
1 createApp (reactRouter, typescript) App scaffolding works
2 app dev via PTY Dev server starts, shows "Ready"
3 app execute --query GraphQL query returns shop data
4 Press q Dev server exits cleanly
5 app dev clean Dev preview stopped
6 app deploy --version Deployment succeeds
7 app versions list --json Deployed version appears in list
8 Create secondary app + app config link Config linking to a different app works
9 app deploy --config secondary Deploy to the linked secondary app

Key characteristics:

  • Creates 2 fresh apps from scratch using --organization-id
  • Uses existing helpers from setup/app.ts: createApp, deployApp, versionsList, extractClientId, configLink, teardownApp
  • Uses cli.spawn for interactive app dev and cli.exec for non-interactive commands
  • Cleans up both apps in finally (with E2E_SKIP_CLEANUP support)
  • 15 min timeout

QA checklist coverage:

QA Step Status
Create a new dev platform app ✅ Step 1
Run shopify app dev ✅ Step 2
GraphiQL / app execute ✅ Step 3
Press q to stop dev ✅ Step 4
Run shopify app dev clean ✅ Step 5
Run shopify app deploy ✅ Step 6
Run shopify app versions list ✅ Step 7
Run shopify app config link (new app) ✅ Step 8
Deploy to the new app ✅ Step 9
Add extensions Separate PR (app-extensions-flow)
Dev Console / theme app extension Out of scope (requires store browser automation)
Function build / run Separate PR (app-extensions-flow)

How to test your changes?

# Run the basic flow test
DEBUG=1 pnpm --filter e2e exec playwright test app-basic-flow

# With headed browser (to watch teardown)
E2E_HEADED=1 DEBUG=1 pnpm --filter e2e exec playwright test app-basic-flow

# Skip cleanup to inspect apps on dashboard
E2E_SKIP_CLEANUP=1 DEBUG=1 pnpm --filter e2e exec playwright test app-basic-flow

Measuring impact

  • n/a - this doesn't need measurement, e.g. a linting rule or a bug-fix

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes

Copy link
Copy Markdown
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@phyllis-sy-wu phyllis-sy-wu mentioned this pull request Apr 7, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant