Golfmate · End-to-end tests

Customer review report

78 tests 66 passed 12 skipped 2026-05-03T19:40:53.402Z

specs/auth.spec.ts

Unauthenticated visitor is redirected from home to login

Passed

User signs in with valid credentials and lands on home

Passed

Invalid credentials show an error and keep the user on login

Passed

Short password fails client-side validation

Passed

Sign-up mode toggle swaps the primary action copy

Passed

Forgot password? link is visible on sign-in screen only

Passed

Forgot password flow: empty email shows validation error

Passed

Forgot password flow: valid email shows confirmation banner

Passed

Forgot password flow: back link returns to sign-in mode

Passed

/reset-password without a recovery session shows expired-link message

Passed

Signed-in user can sign out and is redirected to login

Passed

specs/connections-approve.spec.ts

Cara can accept Alice's pending request

Passed

specs/connections-invite.spec.ts

rejects an invalid email format

Passed

rejects self-invite

Passed

specs/connections.spec.ts

Alice sees Bob under 'My connections' and Cara under 'Discover'

Passed

Sending a connect request flips the button to 'Pending'

Passed

Invite-by-email triggers an edge-function call and surfaces a result

Passed

specs/create-match.spec.ts

Alice hosts an open match with an area and lands on the detail view

Passed

Back button returns to the previous step

Passed

specs/deep-link.spec.ts

cold-loading /match/<id> renders the match detail, not home

Skipped

No screenshots attached.

/signup redirects to /login mode toggle (no 404)

Passed

No screenshots attached.

cold-loading /match/<id> bounces an anon user to /login

Passed

No screenshots attached.

cold-loading /signup lands on the login form (no 404)

Passed

No screenshots attached.

specs/explore.spec.ts

Alice opens Explore and sees the open-matches/courses count

Skipped

No screenshots attached.

Near-me toggle without geolocation surfaces an alert and stays off

Skipped

No screenshots attached.

specs/feedback.spec.ts

Alice submits feedback and sees the thanks card

Passed

rejects body shorter than 5 characters

Passed

specs/home-filters.spec.ts

opening the sheet, picking 2-ball, and applying filters the feed

Passed

Reset clears all filters and the badge disappears

Passed

specs/home-private-tile.spec.ts

Bob's joined private match shows the JOINED pill

Passed

No screenshots attached.

specs/home.spec.ts

Alice sees a personalised greeting and the seeded open match

Passed

Host FAB navigates to the Create wizard

Passed

Search shortcut navigates to the Search screen

Passed

Filters sheet opens from the home filter button

Passed

Clicking the seeded match card opens match detail

Passed

specs/match-detail.spec.ts

Alice sees 'Waiting for N more players' on her own open match

Passed

Bob sees a 'Request to join' CTA on Alice's open match

Passed

Clicking the CTA flips it to 'Request sent'

Passed

Cara sees a disabled CTA explaining she's not eligible

Passed

specs/match-invite-accept.spec.ts

Accept invite flips the row and replaces the CTA with 'Leave match'

Skipped

No screenshots attached.

specs/notifications.spec.ts

Sam sees no bell-dot and an empty notifications screen

Passed

bell shows the dot, list shows the request

Passed

specs/personas/onboarding.spec.ts

walks through welcome → handicap → region → friends → home

Passed

specs/personas/persona-feed.spec.ts

hattie lands on home

Passed

pat lands on home

Passed

pari lands on home

Passed

aisha lands on home

Passed

vic lands on home

Passed

fiona lands on home

Passed

sam lands on home

Passed

specs/personas/score-approval.spec.ts

Vic approves the submitted Walton Heath scorecard

Skipped

No screenshots attached.

specs/privacy.spec.ts

Privacy Policy link is visible on the login screen

Passed

Clicking Privacy Policy link navigates to the policy page

Skipped

No screenshots attached.

/privacy is accessible directly without authentication

Passed

Privacy page content covers required GDPR sections

Passed

No screenshots attached.

specs/profile-age-homeclub.spec.ts

Alice can save age + home club and they show on her profile

Passed

invalid age stays in the form with a visible error

Passed

specs/profile-avatar.spec.ts

renders initials when no third-party photo resolves

Passed

specs/profile.spec.ts

Alice's own profile shows her stats and a Sign out button

Passed

Opening another player's profile surfaces a Connect action

Skipped

No screenshots attached.

Existing connection shows a Remove button

Passed

Delete account button is visible and shows a confirmation dialog

Passed

Connections count is visible on own and peer profiles

Passed

Tapping a recent match row opens the match detail screen

Skipped

No screenshots attached.

specs/ranks.spec.ts

Alice sees her YOU marker and a current rank

Passed

Switching the sort metric reshuffles the rows

Passed

Tapping another player opens their profile modal

Passed

specs/rls-scores-and-matches.spec.ts

non-participant cannot rewrite a score row via UPDATE

Passed

No screenshots attached.

non-participant cannot rewrite a score via upsert ON CONFLICT

Passed

No screenshots attached.

joined non-host cannot rewrite host_id (match takeover)

Passed

No screenshots attached.

non-participant cannot complete a match via the RPC

Passed

No screenshots attached.

specs/scorecard-readonly.spec.ts

Scorecard for a completed match shows scores but no stepper controls

Skipped

No screenshots attached.

Par stepper is hidden on a completed match scorecard

Skipped

No screenshots attached.

specs/scoring-validation.spec.ts

Alice enters strokes for both players across 9 holes

Skipped

No screenshots attached.

Both players approve — the match flips to 'Completed'

Skipped

No screenshots attached.

specs/search.spec.ts

Text query filters the feed in real time

Passed

Format chip filters by match format

Passed

Disabling 'Open matches only' reveals private matches Alice is in

Passed