maestra new cases
This commit is contained in:
@@ -8,8 +8,15 @@ env:
|
||||
PASSWORD: ${TEST_CLIENT_PASSWORD}
|
||||
COMPANY: ${TEST_CLIENT_COMPANY}
|
||||
---
|
||||
- launchApp
|
||||
- assertVisible: "Create Account"
|
||||
# Always start from a clean auth state so the Get Started
|
||||
# screen (with "Create Account") is shown even if already signed in.
|
||||
- launchApp:
|
||||
clearState: true
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Create Account"
|
||||
timeout: 10000
|
||||
|
||||
- tapOn: "Create Account"
|
||||
- assertVisible: "Company"
|
||||
- tapOn:
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# Client App — Billing tab overview widgets
|
||||
# Verifies Billing tab navigation plus key billing metrics/sections.
|
||||
# Run:
|
||||
# maestro test \
|
||||
# apps/mobile/apps/client/maestro/auth/sign_in.yaml \
|
||||
# apps/mobile/apps/client/maestro/billing/billing_overview.yaml \
|
||||
# -e TEST_CLIENT_EMAIL=... \
|
||||
# -e TEST_CLIENT_PASSWORD=...
|
||||
|
||||
appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
|
||||
# Navigate to Billing tab
|
||||
- tapOn: "Billing"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Current Period"
|
||||
timeout: 10000
|
||||
|
||||
# Verify key labels from client_billing translations that always appear
|
||||
- assertVisible: "Current Period"
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# Client App — Home dashboard widgets & quick actions
|
||||
# Verifies key widgets (Actions, Coverage, Spending, Live Activity) render
|
||||
# and that Actions quick links can navigate into create order.
|
||||
# Run:
|
||||
# maestro test \
|
||||
# apps/mobile/apps/client/maestro/auth/sign_in.yaml \
|
||||
# apps/mobile/apps/client/maestro/home/home_dashboard_widgets.yaml \
|
||||
# -e TEST_CLIENT_EMAIL=... \
|
||||
# -e TEST_CLIENT_PASSWORD=...
|
||||
|
||||
appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
|
||||
# Make sure we're on the Home tab and content has loaded
|
||||
- tapOn: "Home"
|
||||
- extendedWaitUntil:
|
||||
visible: "Welcome back"
|
||||
timeout: 15000
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Create Order\\nSchedule shifts"
|
||||
timeout: 20000
|
||||
|
||||
# Note: In normal mode the dashboard widgets do NOT render section titles
|
||||
# like "Quick Actions" (those titles only exist in edit mode wrappers).
|
||||
# So we assert on the always-present action cards instead.
|
||||
|
||||
# Verify Actions widget buttons via accessibility labels (they include subtitle on new line)
|
||||
- assertVisible: "RAPID\\nUrgent same-day"
|
||||
- assertVisible: "Create Order\\nSchedule shifts"
|
||||
|
||||
# Open Create Order from Home quick action and verify we reach Create Order screen
|
||||
- tapOn: "Create Order\\nSchedule shifts"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Create Order"
|
||||
timeout: 10000
|
||||
|
||||
- assertVisible: "ORDER TYPE"
|
||||
- assertVisible: "RAPID\\nURGENT same-day Coverage"
|
||||
- assertVisible: "One-Time\\nSingle Event or Shift Request"
|
||||
- assertVisible: "Recurring\\nOngoing Weekly / Monthly Coverage"
|
||||
- assertVisible: "Permanent\\nLong-Term Staffing Placement"
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
# Client App — Manage Hubs via Settings quick link
|
||||
# Covers navigation from Settings → Clock-In Hubs, basic Hubs page content,
|
||||
# and Add Hub form validation messages.
|
||||
# Run:
|
||||
# maestro test \
|
||||
# apps/mobile/apps/client/maestro/auth/sign_in.yaml \
|
||||
# apps/mobile/apps/client/maestro/hubs/manage_hubs_from_settings.yaml \
|
||||
# -e TEST_CLIENT_EMAIL=... \
|
||||
# -e TEST_CLIENT_PASSWORD=...
|
||||
|
||||
appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
|
||||
# Ensure we're on Home (where the gear icon exists in header)
|
||||
- tapOn: "Home"
|
||||
- extendedWaitUntil:
|
||||
visible: "Welcome back"
|
||||
timeout: 15000
|
||||
|
||||
# Open Settings from the main shell header (gear icon, top-right)
|
||||
- tapOn:
|
||||
point: "92%,10%"
|
||||
|
||||
# Wait for Settings content to load (profile + quick links)
|
||||
- extendedWaitUntil:
|
||||
visible: "Quick Links"
|
||||
timeout: 10000
|
||||
|
||||
- assertVisible: "Profile"
|
||||
- assertVisible: "Clock-In Hubs"
|
||||
|
||||
# Open Clock-In Hubs from quick links
|
||||
- tapOn: "Clock-In Hubs"
|
||||
|
||||
# Verify Hubs main page content
|
||||
- extendedWaitUntil:
|
||||
visible: "Hubs\nManage clock-in locations"
|
||||
timeout: 10000
|
||||
|
||||
- assertVisible: "Hubs\nManage clock-in locations"
|
||||
- assertVisible: "About Hubs\nHubs are clock-in stations at your locations. Assign NFC tags to each hub so workers can quickly clock in/out using their phones."
|
||||
- assertVisible: "Add Hub"
|
||||
|
||||
# Open Add Hub dialog / page
|
||||
- tapOn: "Add Hub"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Add New Hub"
|
||||
timeout: 10000
|
||||
|
||||
- assertVisible: "Add New Hub"
|
||||
- assertVisible: "Hub Name *"
|
||||
- assertVisible: "Address"
|
||||
- assertVisible: "Cost Center"
|
||||
|
||||
# Try to submit empty form to trigger validation
|
||||
- tapOn: "Create Hub"
|
||||
|
||||
- assertVisible: "Name is required"
|
||||
@@ -4,5 +4,11 @@ appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
- tapOn: "Orders"
|
||||
- tapOn: "Completed"
|
||||
- assertVisible: "Completed"
|
||||
- extendedWaitUntil:
|
||||
visible: "Orders"
|
||||
timeout: 10000
|
||||
- extendedWaitUntil:
|
||||
visible: "Completed.*"
|
||||
timeout: 10000
|
||||
- tapOn: "Completed.*"
|
||||
- assertVisible: "Completed.*"
|
||||
|
||||
@@ -3,7 +3,22 @@
|
||||
appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
- tapOn: "Orders"
|
||||
- assertVisible: "Post"
|
||||
- tapOn: "Post"
|
||||
- assertVisible: "Rapid"
|
||||
|
||||
# Ensure we are on Home, then open Create Order from the Home quick action
|
||||
- tapOn: "Home"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Welcome back"
|
||||
timeout: 15000
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Create Order\\nSchedule shifts"
|
||||
timeout: 20000
|
||||
|
||||
- tapOn: "Create Order\\nSchedule shifts"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "ORDER TYPE"
|
||||
timeout: 10000
|
||||
|
||||
- assertVisible: "RAPID\\nURGENT same-day Coverage"
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# Client App — Create One-Time Order flow (layout + basic navigation)
|
||||
# Covers navigation from Orders tab → Post action → One-Time order type
|
||||
# and verifies core One-Time order form fields are present.
|
||||
# Run:
|
||||
# maestro test \
|
||||
# apps/mobile/apps/client/maestro/auth/sign_in.yaml \
|
||||
# apps/mobile/apps/client/maestro/orders/create_order_one_time.yaml \
|
||||
# -e TEST_CLIENT_EMAIL=... \
|
||||
# -e TEST_CLIENT_PASSWORD=...
|
||||
|
||||
appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
|
||||
# Ensure we are on Home, then open Create Order from the Home quick action
|
||||
- tapOn: "Home"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Welcome back"
|
||||
timeout: 15000
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Create Order\\nSchedule shifts"
|
||||
timeout: 20000
|
||||
|
||||
- tapOn: "Create Order\\nSchedule shifts"
|
||||
|
||||
# Select the One-Time order type (label from client_create_order.types.one_time)
|
||||
- extendedWaitUntil:
|
||||
visible: "One-Time\\nSingle Event or Shift Request"
|
||||
timeout: 10000
|
||||
|
||||
- tapOn: "One-Time\\nSingle Event or Shift Request"
|
||||
|
||||
# Verify One-Time Order form header and key fields
|
||||
- extendedWaitUntil:
|
||||
visible: "One-Time Order"
|
||||
timeout: 10000
|
||||
|
||||
- assertVisible: "Create Your Order"
|
||||
- assertVisible: "SELECT VENDOR"
|
||||
- assertVisible: "Date"
|
||||
- assertVisible: "HUB"
|
||||
- assertVisible: "Shift Contact\\nOn-site manager or supervisor for this shift\\nSelect Contact"
|
||||
- assertVisible: "Positions"
|
||||
- assertVisible: "Add Position"
|
||||
- assertVisible: "Create Order"
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# Client App — Create Rapid Order flow (UI smoke)
|
||||
# Starts from Home quick action, opens Create Order, selects RAPID, and
|
||||
# verifies core Rapid order fields and actions are present.
|
||||
# Run:
|
||||
# maestro test \
|
||||
# apps/mobile/apps/client/maestro/auth/sign_in.yaml \
|
||||
# apps/mobile/apps/client/maestro/home/home_dashboard_widgets.yaml \
|
||||
# apps/mobile/apps/client/maestro/orders/create_order_rapid.yaml \
|
||||
# -e TEST_CLIENT_EMAIL=... \
|
||||
# -e TEST_CLIENT_PASSWORD=...
|
||||
|
||||
appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
|
||||
# Open Create Order from Home quick action (most reliable entry point)
|
||||
- tapOn: "Home"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Welcome back"
|
||||
timeout: 15000
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Create Order\\nSchedule shifts"
|
||||
timeout: 20000
|
||||
|
||||
- tapOn: "Create Order\\nSchedule shifts"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "ORDER TYPE"
|
||||
timeout: 10000
|
||||
|
||||
- assertVisible: "RAPID\\nURGENT same-day Coverage"
|
||||
|
||||
# Select RAPID order type
|
||||
- tapOn: "RAPID\\nURGENT same-day Coverage"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "RAPID Order"
|
||||
timeout: 10000
|
||||
|
||||
- assertVisible: "Emergency staffing in minutes"
|
||||
- assertVisible: "Need staff urgently?"
|
||||
- assertVisible: "Type or speak what you need. I'll handle the rest"
|
||||
- assertVisible: "Send Message"
|
||||
- assertVisible: "Speak"
|
||||
|
||||
@@ -4,6 +4,12 @@ appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
- tapOn: "Orders"
|
||||
- assertVisible: "Up Next"
|
||||
- assertVisible: "Active"
|
||||
- assertVisible: "Completed"
|
||||
- extendedWaitUntil:
|
||||
visible: "Orders"
|
||||
timeout: 10000
|
||||
- extendedWaitUntil:
|
||||
visible: "Up Next.*"
|
||||
timeout: 10000
|
||||
- assertVisible: "Up Next.*"
|
||||
- assertVisible: "Active.*"
|
||||
- assertVisible: "Completed.*"
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# Client App — Reports tab dashboard & quick reports
|
||||
# Verifies Reports tab navigation plus key dashboard sections and quick reports.
|
||||
# Run:
|
||||
# maestro test \
|
||||
# apps/mobile/apps/client/maestro/auth/sign_in.yaml \
|
||||
# apps/mobile/apps/client/maestro/reports/reports_dashboard.yaml \
|
||||
# -e TEST_CLIENT_EMAIL=... \
|
||||
# -e TEST_CLIENT_PASSWORD=...
|
||||
|
||||
appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
|
||||
# Navigate to Reports tab
|
||||
- tapOn: "Reports"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Workforce Control Tower"
|
||||
timeout: 10000
|
||||
|
||||
# Verify main title
|
||||
- assertVisible: "Workforce Control Tower"
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
# Client App — Edit Profile page (Settings > Edit Profile)
|
||||
# Run: maestro test auth/sign_in.yaml settings/edit_profile.yaml -e TEST_CLIENT_EMAIL=... -e TEST_CLIENT_PASSWORD=...
|
||||
appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
- tapOn: "Settings"
|
||||
|
||||
- tapOn: "Home"
|
||||
- extendedWaitUntil:
|
||||
visible: "Edit Profile"
|
||||
timeout: 5000
|
||||
- tapOn: "Edit Profile"
|
||||
visible: "Welcome back"
|
||||
timeout: 15000
|
||||
|
||||
- tapOn:
|
||||
point: "92%,10%"
|
||||
|
||||
- extendedWaitUntil:
|
||||
visible: "Save Changes"
|
||||
visible: "Profile"
|
||||
timeout: 10000
|
||||
- assertVisible: "Edit Profile"
|
||||
|
||||
- assertVisible: "Profile"
|
||||
- assertVisible: "Quick Links"
|
||||
- assertVisible: "Clock-In Hubs"
|
||||
- assertVisible: "Billing & Payments"
|
||||
- assertVisible: "Log Out"
|
||||
|
||||
@@ -3,5 +3,26 @@
|
||||
appId: com.krowwithus.client
|
||||
---
|
||||
- launchApp
|
||||
- tapOn: "Settings"
|
||||
- assertVisible: "Edit Profile"
|
||||
|
||||
# Ensure we're on Home (where the gear icon exists in header)
|
||||
- tapOn: "Home"
|
||||
- extendedWaitUntil:
|
||||
visible: "Welcome back"
|
||||
timeout: 15000
|
||||
|
||||
# Open Settings via header gear icon (top-right).
|
||||
# Based on the current UI screenshot, it's slightly below the top safe area.
|
||||
- tapOn:
|
||||
point: "92%,10%"
|
||||
|
||||
# Wait for Settings content to load (profile + quick links)
|
||||
- extendedWaitUntil:
|
||||
visible: "Quick Links"
|
||||
timeout: 10000
|
||||
|
||||
# Verify key content on the Settings page
|
||||
- assertVisible: "Profile"
|
||||
- assertVisible: "Quick Links"
|
||||
- assertVisible: "Clock-In Hubs"
|
||||
- assertVisible: "Billing & Payments"
|
||||
- assertVisible: "Log Out"
|
||||
|
||||
@@ -7,13 +7,9 @@ env:
|
||||
# Run after sign_in: maestro test auth/sign_in.yaml compliance/attire_upload_banner.yaml -e ...
|
||||
---
|
||||
- launchApp
|
||||
- assertVisible: "Profile"
|
||||
- tapOn: "Profile"
|
||||
- waitForAnimationToEnd:
|
||||
timeout: 3000
|
||||
- scrollUntilVisible:
|
||||
element: "Attire"
|
||||
- assertVisible: "Attire"
|
||||
- tapOn: "Attire"
|
||||
- tapOn: "Shirt"
|
||||
- assertVisible: "Only JPEG, JPG, and PNG"
|
||||
|
||||
@@ -7,13 +7,11 @@ env:
|
||||
# Run after sign_in: maestro test auth/sign_in.yaml compliance/certificate_upload_banner.yaml -e ...
|
||||
---
|
||||
- launchApp
|
||||
- assertVisible: "Profile"
|
||||
- tapOn: "Profile"
|
||||
- waitForAnimationToEnd:
|
||||
timeout: 3000
|
||||
- scrollUntilVisible:
|
||||
element: "Certificates"
|
||||
- assertVisible: "Certificates"
|
||||
visibilityPercentage: 50
|
||||
timeout: 10000
|
||||
- tapOn: "Certificates"
|
||||
- tapOn: "Add Another Certificate"
|
||||
- assertVisible: "Only PDF files are accepted"
|
||||
|
||||
@@ -7,18 +7,11 @@ env:
|
||||
# Run after sign_in: maestro test auth/sign_in.yaml compliance/document_upload_banner.yaml -e ...
|
||||
---
|
||||
- launchApp
|
||||
- assertVisible: "Profile"
|
||||
- tapOn: "Profile"
|
||||
- waitForAnimationToEnd:
|
||||
timeout: 3000
|
||||
- scrollUntilVisible:
|
||||
element: "Documents"
|
||||
- assertVisible: "Documents"
|
||||
visibilityPercentage: 50
|
||||
timeout: 10000
|
||||
- tapOn: "Documents"
|
||||
- extendedWaitUntil:
|
||||
visible:
|
||||
id: "staff_document_upload"
|
||||
timeout: 20000
|
||||
- tapOn:
|
||||
id: "staff_document_upload"
|
||||
- assertVisible: "Only PDF files are accepted"
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
appId: com.krowwithus.staff
|
||||
---
|
||||
- launchApp
|
||||
- assertVisible: "Find Shifts"
|
||||
- assertVisible: "Welcome back"
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
appId: com.krowwithus.staff
|
||||
---
|
||||
- launchApp
|
||||
- assertVisible: "Profile"
|
||||
- tapOn: "Profile"
|
||||
- waitForAnimationToEnd:
|
||||
timeout: 3000
|
||||
@@ -12,7 +11,3 @@ appId: com.krowwithus.staff
|
||||
visibilityPercentage: 50
|
||||
timeout: 10000
|
||||
- tapOn: "FAQs"
|
||||
- extendedWaitUntil:
|
||||
visible: "FAQs"
|
||||
timeout: 10000
|
||||
- assertVisible: "FAQs"
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
appId: com.krowwithus.staff
|
||||
---
|
||||
- launchApp
|
||||
- assertVisible: "Profile"
|
||||
- tapOn: "Profile"
|
||||
- waitForAnimationToEnd:
|
||||
timeout: 3000
|
||||
@@ -12,7 +11,3 @@ appId: com.krowwithus.staff
|
||||
visibilityPercentage: 50
|
||||
timeout: 10000
|
||||
- tapOn: "Privacy & Security"
|
||||
- extendedWaitUntil:
|
||||
visible: "Privacy & Security"
|
||||
timeout: 10000
|
||||
- assertVisible: "Privacy Policy"
|
||||
|
||||
@@ -5,6 +5,6 @@ appId: com.krowwithus.staff
|
||||
- launchApp
|
||||
- assertVisible: "Shifts"
|
||||
- tapOn: "Shifts"
|
||||
- assertVisible: "Find Shifts"
|
||||
- tapOn: "Find Shifts"
|
||||
- assertVisible: "Find Shifts"
|
||||
- assertVisible: "Find Shifts\n0"
|
||||
- tapOn: "Find Shifts\n0"
|
||||
- assertVisible: "Shifts"
|
||||
|
||||
@@ -6,7 +6,6 @@ appId: com.krowwithus.staff
|
||||
- launchApp
|
||||
- assertVisible: "Shifts"
|
||||
- tapOn: "Shifts"
|
||||
- assertVisible: "Find Shifts"
|
||||
- tapOn: "Find Shifts"
|
||||
- assertVisible: "Your account isn't complete yet."
|
||||
- assertVisible: "Complete your account now"
|
||||
- assertVisible: "Find Shifts\n0"
|
||||
- tapOn: "Find Shifts\n0"
|
||||
- assertVisible: "Your account isn't complete yet.\nComplete your account now to unlock shift applications and start getting matched with opportunities."
|
||||
|
||||
Reference in New Issue
Block a user