maestra new cases

This commit is contained in:
2026-03-03 17:07:41 +05:30
parent e7e11771b3
commit 7ce837b49a
20 changed files with 340 additions and 56 deletions

View File

@@ -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:

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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.*"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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.*"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -3,4 +3,4 @@
appId: com.krowwithus.staff
---
- launchApp
- assertVisible: "Find Shifts"
- assertVisible: "Welcome back"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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."