Rest Abeg - QA Testing Guide

Complete testing documentation for QA team

πŸ“± App Overview

Rest Abeg is a wellness app designed to help busy individuals take short, guided rest breaks. The app features a Nigerian-friendly tone with warm, encouraging messages.

Core Features:

  • β€’ Onboarding Flow - 7-screen guided setup for new users
  • β€’ Guided Rest Sessions - 1, 3, or 5 minute meditation/rest breaks
  • β€’ 5 Rest Categories - Mental Reset, Emotional Reset, Sensory Rest, Body Relaxation, Gratitude Pause
  • β€’ Drop Everything Mode - Quick 60-second emergency reset
  • β€’ Mood Tracking - Before and after session mood check-ins
  • β€’ Gamification - Points, streaks, badges, and weekly goals
  • β€’ AI Rest Plans - Personalized weekly rest schedules
  • β€’ Ambient Sounds - Rain, ocean, forest, wind, fire, night sounds
  • β€’ Email Reminders - Daily or weekly email notifications
  • β€’ Tone Styles - Calm Minimalist or Calm + Nigerian Auntie voice
  • β€’ Dynamic Scripts - Database-driven rest guidance content
  • β€’ Guided Meditations - Meditation library with themes, favorites, and progress tracking
  • β€’ Push Notifications - Daily reminders, session suggestions, achievements
  • β€’ Admin Analytics - User stats, session data, and usage insights (admin only)
  • β€’ Offline Mode - Download meditations and rest sessions for offline use
  • β€’ Landing Page - Public marketing page with YouTube demo modal

πŸ”§ Test Environment Setup

1

Access the App

Navigate to the app URL and ensure you're logged in. The app requires authentication.

2

Fresh Start (Optional)

For clean testing, you may want to clear any existing session data. Note that data persists across sessions.

3

Device Testing

Test on both mobile (primary target) and desktop browsers. The app is mobile-first responsive.

βœ… Test Cases

0. Onboarding Flow

New User Redirect

TC-OB-001

Steps:

  1. Clear app data or use new user account
  2. Navigate to Home page
  3. Verify automatic redirect to Onboarding page
  4. Verify progress dots show 7 steps
Expected: New users are redirected to onboarding before accessing Home

Welcome Screen

TC-OB-002

Steps:

  1. On first onboarding screen, verify welcome message
  2. Verify 'Rest Abeg' branding with yoga emoji
  3. Verify Nigerian-friendly welcome text ('My dear… you've been carrying plenty things')
  4. Tap 'Start' button
Expected: Welcome screen displays correctly with warm messaging

Why Rest Screen

TC-OB-003

Steps:

  1. Verify 'Why Rest?' heading displays
  2. Verify explanatory text about rest benefits
  3. Test 'Continue' button navigation
  4. Test 'Skip' link navigates to Default Length screen
Expected: Educational content shows with skip option

How It Works Screen

TC-OB-004

Steps:

  1. Verify 4 steps are displayed with emojis (🎯 🌬️ 😌 🀲)
  2. Verify each step has label and description
  3. Tap 'I'm Ready' button
Expected: Clear instructions displayed

Default Rest Length Selection

TC-OB-005

Steps:

  1. Verify 3 options: 1 minute, 3 minutes, 5 minutes
  2. Try to proceed without selection - button should be disabled
  3. Select '3 minutes' option
  4. Verify selection is visually highlighted with checkmark
  5. Tap 'Next' button
Expected: Duration preference is captured

Tone Style Selection

TC-OB-006

Steps:

  1. Verify 2 tone options displayed
  2. Verify 'Calm + Nigerian Auntie' has 'Recommended' badge
  3. Test selecting each tone option
  4. Verify selection persists with checkmark
  5. Tap 'Next' button
Expected: Tone preference is captured

Reminders Setup

TC-OB-007

Steps:

  1. Verify reminder toggle is OFF by default
  2. Toggle reminders ON
  3. Verify frequency options appear (2h, 3h, 3x day)
  4. Select a frequency
  5. Tap 'Finish Setup' button
Expected: Reminder preferences captured

Finish Screen & First Session

TC-OB-008

Steps:

  1. Verify 'Well done, my dear' message with sparkle emoji
  2. Tap 'Start My First Rest' button
  3. Verify navigation to RestSession page
  4. Verify session uses selected default duration
  5. Complete session and return to Home
  6. Verify Home page now loads (not redirect to onboarding)
Expected: Onboarding completes and first session launches

Reset Onboarding

TC-OB-009

Steps:

  1. Navigate to Settings page
  2. Find 'Reset Onboarding' option
  3. Tap to reset
  4. Verify redirect to Onboarding page
  5. Complete onboarding again to verify it works
Expected: Users can re-experience onboarding

Onboarding Modal Centering

TC-OB-010

Steps:

  1. Start onboarding flow
  2. On mobile device, verify all screens are properly centered
  3. Verify content doesn't overflow viewport
  4. Verify proper max-width constraint applied
  5. Verify content is vertically centered on screen
Expected: Onboarding screens display centered on all devices

1. Home Page

Home Page Load

TC-001

Steps:

  1. Navigate to Home page
  2. Verify header shows 'Rest Abeg' branding
  3. Verify daily prompt card displays with sparkles icon
  4. Verify points display shows current points
  5. Verify streak display shows current/longest streak
  6. Verify weekly goal progress bar displays
Expected: All UI elements render correctly with proper styling

Duration Picker

TC-002

Steps:

  1. Locate duration picker section
  2. Tap '1 min' option
  3. Verify it becomes selected (highlighted)
  4. Tap '3 min' option
  5. Verify selection changes
  6. Tap '5 min' option
  7. Verify selection changes
Expected: Duration selection persists and is visually indicated

Category Selection

TC-003

Steps:

  1. Select a duration (e.g., 3 min)
  2. Tap on 'Mental Reset' category card
  3. Verify navigation to RestSession page
  4. Verify URL contains category=mental_reset&duration=180
Expected: Navigates to session with correct parameters

Drop Everything Button

TC-004

Steps:

  1. Scroll to bottom of Home page
  2. Locate 'Drop Everything' button (red/orange gradient)
  3. Tap the button
  4. Verify navigation to RestSession with category=drop_everything&duration=60
Expected: Quick 60-second session initiates

Rest Plan Link

TC-005

Steps:

  1. Locate 'Your Rest Plan' card (purple)
  2. Tap the card
  3. Verify navigation to RestPlan page
Expected: Navigates to Rest Plan page

2. Rest Session Flow

Pre-Session Mood Check-in

TC-010

Steps:

  1. Start any rest session from Home
  2. Verify mood selection screen appears first
  3. Verify 5 mood options: Stressed, Tired, Anxious, Okay, Good
  4. Try tapping Continue without selecting - should be disabled
  5. Select a mood (e.g., 'Stressed')
  6. Verify selection is highlighted
  7. Tap Continue button
Expected: Mood is captured and user proceeds to intro screen

Session Intro Screen

TC-011

Steps:

  1. After mood selection, verify intro screen appears
  2. Verify breathing circle animation displays
  3. Verify 'Ready to rest?' heading
  4. Verify duration text (e.g., '3 minutes of peace awaits')
  5. Tap 'Begin Rest' button
Expected: Session starts with timer

Active Rest Session

TC-012

Steps:

  1. Begin a rest session
  2. Verify breathing circle animates (inhale/hold/exhale)
  3. Verify timer countdown displays and decrements
  4. Verify guidance text appears and rotates (every ~8 seconds)
  5. Verify category label shows in header
  6. Verify pause/play button in header works
Expected: All session elements function correctly

Ambient Sound Controls

TC-013

Steps:

  1. During active session, tap sound picker button
  2. Verify sound panel expands
  3. Select 'Rain' sound
  4. Verify audio plays (may require user interaction first)
  5. Adjust volume slider
  6. Verify volume changes
  7. Select 'None' to disable
  8. Verify audio stops
Expected: Ambient sounds play and volume adjusts correctly

End Session Early

TC-014

Steps:

  1. During active session, tap 'End session early' link
  2. Verify session ends and shows completion screen
Expected: Session ends gracefully before timer completes

Session Completion - Mood After

TC-015

Steps:

  1. Complete a session (or end early)
  2. Verify 'Well done, my dear!' message
  3. Verify duration completed is shown
  4. Verify mood selector appears (Calm, Refreshed, Peaceful, Grateful, Same)
  5. Select a post-session mood
  6. Optionally add journal note
  7. Tap 'See Summary' button
Expected: Post-session data captured successfully

Session Summary Screen

TC-016

Steps:

  1. After completing mood selection, verify summary displays
  2. Verify points earned section shows with breakdown
  3. Verify streak status shows
  4. Verify weekly goal progress bar
  5. If first session, verify 'first_rest' badge earned
  6. Tap 'Done' button
  7. Verify navigation back to Home
Expected: Summary shows accurate gamification data

Session Completion Time Accuracy

TC-017

Steps:

  1. Start a 3-minute session
  2. After 1 minute, tap 'End session early'
  3. Complete mood selection and journal
  4. On summary screen, verify duration shows 1 minute (not 3 minutes)
  5. Verify points calculation is based on actual time (not full duration)
Expected: Completion summary displays actual time rested, not intended duration

3. Gamification System

Points Calculation

TC-020

Steps:

  1. Note current points on Home page
  2. Complete a 3-minute session fully
  3. Verify points calculation: 10 (base) + 15 (5 per minute Γ— 3) + 10 (completion) = 35 points
  4. Check if streak bonus (+5) applies
  5. Verify new total on Home page
Expected: Points = 10 + (minutes Γ— 5) + bonuses

Streak Tracking

TC-021

Steps:

  1. Complete a session today
  2. Verify streak shows at least 1
  3. Note: Streak increments only once per day
  4. Multiple sessions same day shouldn't increase streak count
Expected: Streak accurately reflects consecutive days

Weekly Goal Progress

TC-022

Steps:

  1. On Home page, note weekly goal (default 30 min)
  2. Complete sessions to add to weekly total
  3. Verify progress bar updates
  4. When goal reached, verify +50 bonus points
Expected: Weekly progress tracked and goal completion rewarded

Badges Display

TC-023

Steps:

  1. Complete first session - verify 'first_rest' badge
  2. On Home page, verify badge section displays
  3. Hover/tap badges for tooltip info
Expected: Earned badges display correctly

Edit Weekly Goal

TC-024

Steps:

  1. On Home page, tap the edit icon on goal progress
  2. Verify goal options dialog appears (15, 30, 45, 60, 90 min)
  3. Select new goal
  4. Verify goal updates on Home page
Expected: Goal can be customized

4. AI Rest Plans

Generate New Plan

TC-030

Steps:

  1. Navigate to Rest Plan page
  2. If no plan exists, verify empty state shows
  3. Tap 'Create Personalized Plan' button
  4. Verify loading state displays
  5. Wait for AI to generate plan (may take 5-10 seconds)
  6. Verify plan displays with sessions grouped by day
Expected: AI generates personalized 7-day plan

AI Insights Display

TC-031

Steps:

  1. After plan generation, verify AI insights card shows
  2. Verify insights are personalized based on user data
Expected: Relevant wellness insights displayed

Edit Plan Session

TC-032

Steps:

  1. On a generated plan, tap 'Edit' on any session
  2. Verify edit dialog opens
  3. Change category, duration, time of day, or ambient sound
  4. Tap 'Save Changes'
  5. Verify session updates in the plan
Expected: Sessions can be customized

Delete Plan Session

TC-033

Steps:

  1. Edit a session
  2. Tap 'Remove' button
  3. Verify session is removed from plan
Expected: Sessions can be deleted

Add Custom Session

TC-034

Steps:

  1. Tap 'Add Session' link
  2. Configure new session in dialog
  3. Save the session
  4. Verify it appears in the plan
Expected: Custom sessions can be added

Start Session from Plan

TC-035

Steps:

  1. On a plan session card, tap the play button
  2. Verify RestSession starts with correct category and duration
Expected: Plan sessions launch correctly

Regenerate Plan

TC-036

Steps:

  1. With existing plan, tap 'Generate New Plan'
  2. Verify old plan is replaced with new one
Expected: New plan replaces old plan

5. History Page

Session History Display

TC-040

Steps:

  1. Navigate to History page via bottom nav
  2. Verify completed sessions list
  3. Verify sessions show category, duration, date
  4. Verify sessions grouped by date
Expected: All past sessions displayed chronologically

Stats Display

TC-041

Steps:

  1. Verify total rest time stat
  2. Verify total sessions count
  3. Verify streak display
Expected: Accurate statistics shown

6. Email Reminders

Access Email Reminders Settings

TC-050

Steps:

  1. Navigate to Settings page
  2. Tap 'Email Reminders' menu item
  3. Verify EmailReminders page loads
  4. Verify current settings display
Expected: Email reminder settings accessible

Enable Email Reminders

TC-051

Steps:

  1. On Email Reminders page, toggle 'Email Reminders' ON
  2. Verify toggle icon changes to branded color (#D4B8A6) when enabled
  3. Verify frequency options appear (Daily, Weekly) in larger, rounded cards
  4. Verify time picker appears with touch-friendly controls
  5. Verify timezone is auto-detected and displayed with explanation text
Expected: Email reminders can be enabled with improved visual design and clear timezone info

Configure Reminder Frequency

TC-052

Steps:

  1. With email reminders enabled, select 'Daily' frequency
  2. Verify setting saves
  3. Change to 'Weekly' frequency
  4. Verify setting updates
Expected: Frequency can be configured

Set Reminder Time

TC-053

Steps:

  1. Tap time picker dropdown (now larger with rounded borders)
  2. Select a time (e.g., 9:00 AM)
  3. Verify selection saves
  4. Verify time displays in user's timezone
  5. Verify information card explains timezone setting clearly
Expected: Reminder time can be customized with improved UI controls

Disable Email Reminders

TC-054

Steps:

  1. Toggle 'Email Reminders' OFF
  2. Verify frequency and time options disappear
  3. Verify setting persists after page refresh
Expected: Email reminders can be disabled

Test Email Reminder (Admin Only)

TC-055

Steps:

  1. As admin user, navigate to 'Test Email Reminders' from Settings
  2. Tap 'Send Test Email'
  3. Check email inbox for test message
  4. Verify email is branded with company logo
  5. Tap 'Run Reminder Check' to trigger system check
Expected: Admin can test email reminder functionality

7. Settings Page

Settings Page Load

TC-SET-001

Steps:

  1. Navigate to Settings via bottom nav
  2. Verify page title 'Settings' displays
  3. Verify menu items display with icons
Expected: Settings page renders correctly

Current Settings Display

TC-SET-002

Steps:

  1. Verify Default Rest Length shows selected value
  2. Verify Voice Tone shows selected style
  3. Verify Reminders shows On/Off status
Expected: Current user preferences are displayed

Change Default Rest Duration

TC-SET-003

Steps:

  1. Navigate to Home page
  2. Select a duration (1 min, 3 min, or 5 min)
  3. Verify selection is highlighted
  4. Navigate away and return to Home
  5. Verify selected duration persists
Expected: Default rest duration is saved and persists across sessions

Back Navigation from Settings Subpages

TC-SET-004

Steps:

  1. From Settings, tap 'Push Notifications'
  2. On NotificationSettings page, tap back arrow
  3. Verify navigation returns to Settings page (not Home)
  4. From Settings, tap 'Reminders'
  5. On Reminders page, tap back arrow
  6. Verify navigation returns to Settings page
Expected: Back buttons correctly return to Settings page

Reset Onboarding Flow

TC-SET-005

Steps:

  1. Tap 'Reset Onboarding' option
  2. Verify UserSettings.has_completed_onboarding is set to false
  3. Verify redirect to Onboarding page
Expected: Onboarding can be reset from settings

Admin Test Notifications Access

TC-SET-006

Steps:

  1. As non-admin user, navigate to Settings
  2. Verify 'Test Notifications' option is NOT visible
  3. As admin user, navigate to Settings
  4. Verify 'Test Notifications' option IS visible (purple highlight)
  5. Tap 'Test Notifications'
  6. Verify TestNotifications page loads
Expected: Test notifications page is admin-only

8. Navigation & Layout

Bottom Navigation

TC-060

Steps:

  1. Verify bottom nav shows: Home, Meditate, Rewards, History, Settings
  2. Verify nav has proper height (20px / 5rem) and padding
  3. Verify nav items use flex-1 for equal spacing
  4. Verify text is 10px font size
  5. Tap each icon and verify correct page loads
  6. Verify active state highlighting (clay color)
  7. On mobile, verify nav items are not truncated or overlapping
Expected: Navigation works correctly with proper mobile dimensions

Navigation Hidden During Session

TC-061

Steps:

  1. Start a rest session
  2. Verify bottom navigation is hidden
  3. Complete or exit session
  4. Verify navigation reappears
Expected: Clean, distraction-free session experience

Navigation Scrolls to Top

TC-062

Steps:

  1. Scroll to bottom of any page
  2. Tap any navigation item to navigate to different page
  3. Verify new page loads scrolled to the top (not at bottom)
Expected: Page navigation always scrolls to top

Footer Pages Hide Navigation

TC-063

Steps:

  1. From footer, tap 'Privacy Policy' link
  2. Verify bottom navigation is hidden
  3. Navigate back and tap 'Terms of Service'
  4. Verify bottom navigation is hidden
  5. Tap 'Disclaimer' link
  6. Verify bottom navigation is hidden
Expected: Legal pages display without navigation bar

Back Navigation

TC-064

Steps:

  1. Navigate deep into app (Home β†’ RestPlan β†’ Edit)
  2. Use back buttons to navigate back
  3. Verify correct page hierarchy
Expected: Back navigation works as expected

Mini Tour Centering

TC-065

Steps:

  1. Clear localStorage to trigger mini tour
  2. Navigate to Home page after onboarding
  3. Verify mini tour modal appears
  4. On mobile devices, verify modal is properly centered on screen
  5. Verify modal does not overflow or get cut off
  6. Verify modal backdrop covers full screen
Expected: Mini tour modal displays centered on all screen sizes

9. Edge Cases & Error Handling

New User Experience

TC-070

Steps:

  1. Test with user who has no sessions
  2. Verify onboarding triggers for new users
  3. Complete onboarding
  4. Verify Home shows 0 points, 0 streak
  5. Verify History shows empty state
  6. Verify first session awards 'first_rest' badge
Expected: App handles new users gracefully with onboarding

Session Interruption

TC-071

Steps:

  1. Start a session
  2. Use X button to exit mid-session
  3. Verify no data is saved for incomplete exit
  4. Start another session and end early via link
  5. Verify partial session is saved
Expected: Different exit methods handled correctly

Rating Submission Error Handling

TC-072

Steps:

  1. Trigger rating modal (after 3rd, 10th, or 20th session)
  2. Fill out rating form with star rating and feedback
  3. If network error occurs during submission, verify error toast displays
  4. Verify modal remains open for retry
  5. On success, verify success toast and modal closes
Expected: Rating submission errors are handled gracefully with user feedback

Network Issues

TC-073

Steps:

  1. With slow/no network, attempt to save session
  2. Verify appropriate error handling
  3. Test AI plan generation with slow network
Expected: Graceful error handling

10. Meditation Library

Meditation Library Load

TC-MED-001

Steps:

  1. Tap 'Meditate' in bottom navigation
  2. Verify meditation library page loads
  3. Verify theme filter tabs display (All, Stress Relief, Focus, Sleep, etc.)
  4. Verify meditation cards display with title, description, duration
Expected: Library displays all available meditations

Theme Filtering

TC-MED-002

Steps:

  1. On Meditations page, tap 'Stress Relief' filter
  2. Verify only stress relief meditations show
  3. Tap 'Focus' filter
  4. Verify list updates to focus meditations
  5. Tap 'All' to reset filter
Expected: Filtering works correctly for all themes

Start Meditation

TC-MED-003

Steps:

  1. Tap play button on any meditation card
  2. Verify MeditationPlayer page loads
  3. Verify meditation title displays
  4. Verify script text displays
  5. Verify timer and controls appear
Expected: Meditation player opens with correct content

Favorite Meditation

TC-MED-004

Steps:

  1. On a meditation card, tap the heart icon
  2. Verify heart fills/highlights
  3. Navigate away and return to Meditations page
  4. Verify favorite state persists
Expected: Favorites are saved and persist

Meditation Progress Tracking

TC-MED-005

Steps:

  1. Start and complete a meditation
  2. Return to Meditations page
  3. Verify completed indicator shows on that meditation
  4. Check times_completed counter increments
Expected: Completion progress tracked correctly

Ambient Sound in Meditation

TC-MED-006

Steps:

  1. Start a meditation with recommended sound
  2. Verify ambient sound picker available
  3. Change ambient sound during meditation
  4. Verify audio switches correctly
Expected: Ambient sounds integrate with meditation player

11. Push Notifications

Notification Settings Access

TC-PUSH-001

Steps:

  1. Navigate to Settings page
  2. Tap 'Push Notifications' menu item
  3. Verify NotificationSettings page loads
Expected: Notification settings page accessible

Enable Push Notifications

TC-PUSH-002

Steps:

  1. On NotificationSettings page, tap 'Enable Notifications'
  2. Browser should prompt for notification permission
  3. Grant permission
  4. Verify 'Notifications are enabled' message shows
  5. Verify notification type toggles appear
Expected: Push notifications can be enabled

Daily Reminder Configuration

TC-PUSH-003

Steps:

  1. With notifications enabled, verify Daily Reminders toggle
  2. Toggle Daily Reminders ON
  3. Verify time picker appears
  4. Select a reminder time (e.g., 9:00 AM)
  5. Verify selection saves
Expected: Daily reminder time can be configured

Toggle Notification Types

TC-PUSH-004

Steps:

  1. Toggle 'Session Suggestions' off
  2. Toggle 'Group Updates' off
  3. Toggle 'Achievements' off
  4. Refresh page
  5. Verify toggle states persist
Expected: Individual notification types can be toggled

Disable All Notifications

TC-PUSH-005

Steps:

  1. With notifications enabled, tap 'Disable' link
  2. Verify master toggle turns off
  3. Verify notification type toggles disappear
Expected: Notifications can be fully disabled

Permission Denied State

TC-PUSH-006

Steps:

  1. If notification permission was denied in browser
  2. Verify warning message about blocked notifications
  3. Verify Enable button is disabled with explanation
Expected: App handles denied permission gracefully

Test Notifications (Admin Only)

TC-PUSH-007

Steps:

  1. As admin user, navigate to TestNotifications page from Settings
  2. Verify push notifications are enabled
  3. Tap 'Re-engagement' quick test button
  4. Verify test notification is sent and success message displays
  5. Try 'Milestone Alert', 'Weekly Summary', 'Daily Reminder', and 'Achievement' tests
  6. Test custom notification with custom title and body
  7. Tap 'Run Full Check' to test system notification check
Expected: Admin can send test notifications for all types

12. Admin Analytics

Admin Access Check

TC-ADMIN-001

Steps:

  1. As a non-admin user, navigate to Settings
  2. Verify 'Admin Analytics' option is NOT visible
  3. As an admin user (role='admin'), navigate to Settings
  4. Verify 'Admin Analytics' option IS visible (purple highlight)
Expected: Analytics only visible to admin users

Admin Analytics Access Denied

TC-ADMIN-002

Steps:

  1. As non-admin, try to directly access AdminAnalytics page URL
  2. Verify 'Access Denied' message displays
  3. Verify shield icon and explanation text
  4. Verify 'Go Back' button works
Expected: Non-admins cannot access analytics

Analytics Dashboard Load

TC-ADMIN-003

Steps:

  1. As admin, navigate to Admin Analytics
  2. Verify page loads with time range selector (7d, 14d, 30d, 90d)
  3. Verify key metrics cards display (Total Users, Active Users, Total Sessions, Avg Session)
Expected: Dashboard renders with key metrics

Time Range Filter

TC-ADMIN-004

Steps:

  1. Click '14d' time range button
  2. Verify charts update to show 14-day data
  3. Click '30d' button
  4. Verify charts update again
  5. Verify '+X this period' text updates
Expected: Time range filtering works correctly

Sessions Over Time Chart

TC-ADMIN-005

Steps:

  1. Verify bar chart displays session counts
  2. Hover over bars to see tooltips
  3. Verify X-axis shows dates, Y-axis shows count
Expected: Session chart renders correctly

User Signups Chart

TC-ADMIN-006

Steps:

  1. Verify line chart displays new user signups
  2. Verify chart updates with time range selection
Expected: Signup trends visible

Category Distribution

TC-ADMIN-007

Steps:

  1. Verify pie chart shows popular categories
  2. Verify legend shows category names and counts
  3. Verify colors differentiate categories
Expected: Category breakdown displays

Top Users List

TC-ADMIN-008

Steps:

  1. Scroll to 'Most Active Users' section
  2. Verify list shows up to 10 users
  3. Verify each row shows email and session count
  4. Verify ranking numbers (1-10)
Expected: User activity rankings display

Mood Insights

TC-ADMIN-009

Steps:

  1. Scroll to 'Mood Insights' section
  2. Verify 'Before Sessions' column shows mood distribution
  3. Verify 'After Sessions' column shows mood distribution
Expected: Mood data aggregation displays

Meditation Stats

TC-ADMIN-010

Steps:

  1. Verify meditation usage section shows
  2. Verify counts for: Available, Completions, Favorites
Expected: Meditation analytics display

13. Offline Mode

Offline Content Access

TC-OFF-001

Steps:

  1. Navigate to Settings page
  2. Tap 'Offline Content' menu item
  3. Verify OfflineContent page loads
  4. Verify online/offline status banner displays
Expected: Offline content page accessible from settings

Download Meditation for Offline

TC-OFF-002

Steps:

  1. Navigate to Meditations page
  2. On any meditation card, tap the download icon
  3. Verify icon changes to checkmark (downloaded)
  4. Navigate to Offline Content page
  5. Verify meditation appears in 'Downloaded Meditations' list
Expected: Meditations can be downloaded for offline use

Remove Downloaded Meditation

TC-OFF-003

Steps:

  1. On Offline Content page, find a downloaded meditation
  2. Tap the trash icon
  3. Verify meditation is removed from list
  4. Return to Meditations page
  5. Verify download icon reappears on that meditation
Expected: Downloaded content can be removed

Offline Indicator Display

TC-OFF-004

Steps:

  1. Simulate offline mode (disable network in browser DevTools)
  2. Verify offline indicator banner appears at top of screen
  3. Verify banner shows 'Offline Mode' with WifiOff icon
  4. Re-enable network
  5. Verify 'You're back online!' toast appears
Expected: App clearly indicates offline/online status

Pending Sessions Sync

TC-OFF-005

Steps:

  1. Go offline (disable network)
  2. Complete a rest session
  3. Verify 'Session saved. Will sync when online' message
  4. Go to Offline Content page
  5. Verify 'Sessions to Sync' banner shows count
  6. Re-enable network
  7. Verify sessions sync automatically
  8. Verify pending count goes to 0
Expected: Offline sessions sync when back online

Access Downloaded Content Offline

TC-OFF-006

Steps:

  1. Download a meditation while online
  2. Go offline
  3. Navigate to Meditations page
  4. Tap on the downloaded meditation
  5. Verify meditation player loads with cached content
Expected: Downloaded meditations playable offline

Offline Stats Display

TC-OFF-007

Steps:

  1. Download several meditations
  2. Navigate to Offline Content page
  3. Verify stats show correct counts: Meditations, Rest Scripts, Total
Expected: Offline storage stats display accurately

14. Landing Page

Landing Page Load

TC-LAND-001

Steps:

  1. Navigate to Landing page (while logged out)
  2. Verify hero section with 'Rest Abeg' branding
  3. Verify animated breathing circle in phone mockup
  4. Verify 'Start Resting Free' CTA button
  5. Verify 'Watch Demo' button
Expected: Landing page renders with all marketing elements

Features Section

TC-LAND-002

Steps:

  1. Scroll to features section
  2. Verify 7 feature cards display: Sessions, Meditations, Drop Everything, Progress, Reminders, AI Plans, Offline Mode
  3. Verify each card has icon, title, and description
Expected: All app features highlighted

Watch Demo Modal

TC-LAND-003

Steps:

  1. Tap 'Watch Demo' button
  2. Verify YouTube modal opens
  3. If no video ID set, verify placeholder with 'Coming Soon' message
  4. Tap X to close modal
  5. Verify modal closes smoothly
Expected: Demo modal opens and closes correctly

YouTube Video Playback (when configured)

TC-LAND-004

Steps:

  1. If YouTube video ID is set, open demo modal
  2. Verify video loads in iframe
  3. Verify autoplay starts
  4. Verify video controls work
  5. Close modal and verify video stops
Expected: YouTube video plays correctly in modal

CTA Navigation

TC-LAND-005

Steps:

  1. Tap 'Start Resting Free' button
  2. Verify redirect to login/signup page
  3. After authentication, verify redirect to Home page
Expected: CTA leads to authentication and app access

Footer Legal Links

TC-LAND-006

Steps:

  1. Scroll to footer section
  2. Tap 'Privacy Policy' link
  3. Verify Privacy Policy page loads
  4. Navigate back and tap 'Terms of Service'
  5. Verify Terms page loads
  6. Navigate back and tap 'Disclaimer'
  7. Verify Disclaimer page loads
Expected: All legal pages accessible from footer

15. Dynamic Content & Scripts

Rest Scripts Loading

TC-SC-001

Steps:

  1. Start a rest session
  2. Verify guidance text displays during session
  3. Verify text rotates every ~8 seconds
  4. Check that scripts match selected tone style
Expected: Database scripts display correctly during sessions

Tone Style Affects Scripts

TC-SC-002

Steps:

  1. Complete onboarding with 'Calm + Nigerian Auntie' tone
  2. Start a session and note guidance text style
  3. Reset onboarding and select 'Calm Minimalist' tone
  4. Start session and verify different text style
Expected: Scripts vary based on user's tone preference

Duration-Specific Scripts

TC-SC-003

Steps:

  1. Start 1-minute session, note script content
  2. Start 3-minute session, note script content
  3. Start 5-minute session, note script content
  4. Verify scripts are appropriate length for duration
Expected: Longer sessions have more script content

⚠️ Known Limitations

β€’ Audio Autoplay: Browsers may block audio autoplay. User interaction required first.

β€’ Email Reminders: Email delivery depends on RESEND_API_KEY configuration and user's email settings.

β€’ Offline Mode: Offline mode stores data in localStorage. Large meditation libraries may hit browser storage limits.

β€’ Time Zones: Streak calculations use local device time.

β€’ Tone Switching: Changing tone style requires resetting onboarding (via Settings).

β€’ Push Notifications: Requires browser support and user permission. Not available in all contexts.

β€’ Admin Access: User must have role='admin' set in database to access analytics and test notifications.

β€’ YouTube Demo: Video ID must be configured in Landing.js to display actual video content.

πŸ†• Recent Updates (December 2025)

β€’ Session Duration Display: Completion screen now shows actual time rested (not intended duration) when ending sessions early.

β€’ Default Rest Duration: Duration selection on Home page now persists and is saved to user settings.

β€’ Navigation Improvements: All page navigation now scrolls to top automatically. Back buttons from settings subpages correctly return to Settings.

β€’ Footer Pages: Privacy Policy, Terms of Service, and Disclaimer pages now hide the bottom navigation bar for cleaner reading.

β€’ Rating Error Handling: Rating submission now displays error messages if submission fails, allowing users to retry.

β€’ Admin Test Notifications: New admin-only page for testing all notification types with custom messages and system checks.

β€’ Email Reminders UI/UX: Enhanced visual appearance with branded toggle colors, larger touch-friendly selectors, consistent card styling, and clearer timezone information display.

πŸ› Bug Reporting Template

Bug ID: [TC-XXX-BUG-001]

Test Case: [Related TC ID]

Summary: [Brief description]

Steps to Reproduce:

1. [Step 1]

2. [Step 2]

Expected: [What should happen]

Actual: [What actually happened]

Device/Browser: [e.g., iPhone 14, Safari]

Screenshots: [Attach if applicable]

✍️ Test Sign-Off

Tested By:

Date:

Build/Version:

Status:

Install Rest Abeg

Install for quick access and offline use