WellNuo/e2e/subscription-test.yaml
Sergei 3f0fe56e02 Add protected route middleware and auth store for web app
- Implement Next.js middleware for route protection
- Create Zustand auth store for web (similar to mobile)
- Add comprehensive tests for middleware and auth store
- Protect authenticated routes (/dashboard, /profile)
- Redirect unauthenticated users to /login
- Redirect authenticated users from auth routes to /dashboard
- Handle session expiration with 401 callback
- Set access token cookie for middleware
- All tests passing (105 tests total)
2026-01-31 17:49:21 -08:00

115 lines
2.0 KiB
YAML

appId: com.wellnuo.app
---
# Full subscription E2E test
# Launch app
- launchApp:
clearState: true
# Wait for app to load
- extendedWaitUntil:
visible: "Continue"
timeout: 10000
# Enter test email
- tapOn: "Enter your email"
- inputText: "wellnuo_test_o4934@yopmail.com"
- hideKeyboard
# Tap Continue
- tapOn: "Continue"
# Wait for OTP screen
- extendedWaitUntil:
visible: "Check your email"
timeout: 10000
# Enter OTP code - test bypass code 000000
- tapOn:
point: "15%,25%"
- inputText: "000000"
- tapOn: "Verify"
# Wait for main screen
- extendedWaitUntil:
visible: "My Loved Ones"
timeout: 15000
# Take screenshot BEFORE
- takeScreenshot: /tmp/e2e-before-subscription.png
# Tap on Grandma
- tapOn: "Grandma"
# Wait for detail page
- extendedWaitUntil:
visible: "Subscription"
timeout: 5000
# Go to subscription page
- tapOn: "Subscription"
# Wait for subscription screen
- extendedWaitUntil:
visible: "Subscribe"
timeout: 5000
# Take screenshot
- takeScreenshot: /tmp/e2e-subscription-screen.png
# Tap Subscribe
- tapOn: "Subscribe"
# Wait for Stripe Payment Sheet
- extendedWaitUntil:
visible: "Card number"
timeout: 10000
# Fill card number
- tapOn: "Card number"
- inputText: "4242424242424242"
# Fill expiration date
- tapOn:
point: "25%,60%"
- inputText: "1230"
# Fill CVC
- tapOn: "CVC"
- inputText: "123"
# Fill ZIP
- tapOn: "ZIP Code"
- inputText: "10001"
- hideKeyboard
# Take screenshot
- takeScreenshot: /tmp/e2e-payment-form.png
# Tap Pay button
- tapOn:
point: "50%,82%"
# Wait for result
- extendedWaitUntil:
visible: "Subscription Active"
timeout: 30000
# Take screenshot after payment
- takeScreenshot: /tmp/e2e-after-payment.png
# Close success modal if present
- runFlow:
when:
visible: "Continue"
commands:
- tapOn: "Continue"
# Wait for main list
- extendedWaitUntil:
visible: "My Loved Ones"
timeout: 10000
# Final screenshot
- takeScreenshot: /tmp/e2e-final-result.png