Integration Test Cases

Setpoint Admin⟷TPS
Integration Test Cases (via OpenRally)

Each test case is one action taken in a single system, paired with the expectations that must then hold in both systems — because an action in one system must produce a result that looks natively created in the other (native-equivalence).

Status: Draft2026-05-289 cases · 2 origins

How to read each table

Three columns. Column 1 is always one action — where it's performed and what it is. Columns 2 and 3 are checklists — each item is a separate thing to verify. Cases are grouped by where the action originates.

🖥️ Setpoint Admin (PMS)📱 TPS Mobile App (consumer)☐ not yet tested✅ verified (works)❌ gap (does not work)

🖥️ Origin

From Setpoint Admin

Actions an operator performs in the Setpoint admin (PMS). Verify the result on both sides.

Action & Location🖥️ Expected in Setpoint Admin📱 Expected in TPS Mobile App
Setpoint Admin → Create a booking
(assign it to a customer whose email matches a TPS account)
  • ✅Booking appears on the calendar
  • ✅Booking appears in the bookings list
  • ✅Slot is now unavailable to book
  • ✅Booking appears under the matching TPS user account (same email) in "My Bookings"
Setpoint Admin → Schedule a coaching lesson
(book a player with a coach; player email matches a TPS account)
  • ✅Lesson appears in the academy lessons list
  • ✅Lesson appears in the bookings list
  • ✅Coach + court blocked on the calendar
  • ✅Lesson appears under the matching TPS user account
  • ✅The coach's time + court slot are unavailable to book
Setpoint Admin → Schedule a coaching lesson on a court that was previously booked then freed
(REGRESSION: an earlier booking on that exact court + time was cancelled, OR a lesson hold on it expired. The slot must read as free everywhere and the lesson must actually save. (Bug: availability showed "1 court free" but Create Lesson failed with "Court has a conflicting booking" because the create-check counted cancelled/expired bookings — fixed 2026-05-25.))
  • ✅Lesson form shows the slot as available ("1 court free")
  • ✅Clicking "Create Lesson" SUCCEEDS — no "Court has a conflicting booking at this time" error
  • ✅Lesson appears in the academy lessons list + bookings list
  • ✅Coach + court blocked on the calendar
  • ✅Lesson appears under the matching TPS user account
  • ✅The coach's time + court slot are unavailable to book
Setpoint Admin → Cancel a booking
(a booking that exists for a matching TPS user)
  • ✅Booking shows "Cancelled" in the bookings list
  • ✅Slot is freed on the calendar
  • ✅Slot is available to book again
  • ✅Booking shows "Cancelled" under the matching TPS user account
Setpoint Admin → Cancel a coaching lesson
(cancel a lesson that exists for a matching TPS user)
  • ✅Lesson shows "Cancelled" in the academy lessons list
  • ✅Lesson shows "Cancelled" in the bookings list
  • ✅Coach + court freed on the calendar
  • ✅Lesson removed from "All Coachings" / "My Bookings" (TPS does not display cancelled coachings — removal is the native behavior)
  • ✅The coach's time + court slot are available to book again — re-bookable from TPS after the cancel
  • ✅On admin cancel, user is notified by email

📱 Origin

From TPS Mobile App

Actions a player performs in the TPS mobile app (consumer). Verify the result on both sides.

Action & Location🖥️ Expected in Setpoint Admin📱 Expected in TPS Mobile App
TPS Mobile App → Book a court
(signed in as a TPS user)
  • ✅Booking appears on the calendar
  • ✅Booking appears in the bookings list
  • ✅Booking appears in the user's "My Bookings"
  • ✅Slot is now unavailable to book
TPS Mobile App → Book a coaching lesson
(signed in as a TPS user; book a coach. RE-TEST 2026-05-28 on an OpenRally club (Sandbox Pad Thai Padel): the coaching court is now derived from OpenRally live availability instead of TPS's stale local table (BUG-097), and the Setpoint hold now covers the full payment window (BUG-098). Only the court-correctness + payment-window items below need re-verifying; the rest of the flow is unchanged.)
Tested by Gian · 2026-05-28 · booking #60839 (PASSED)
  • ✅Lesson appears in the academy lessons list (correct data)
  • ✅Lesson appears in the bookings list
  • ✅Coach + court blocked on the calendar — on the coach's ACTUAL court, not a fallback "first available" guess (BUG-097)
  • ✅Lesson appears in the user's "My Bookings" (upcoming / You page)
  • ✅Lesson appears in "All Coachings"
  • ✅The court offered in the slot picker is the coach's real OpenRally court — previously a wrong "first available (prefer indoor)" guess (BUG-097)
  • ✅The coach's time + court slot are unavailable to book (the correct court is reserved)
  • ✅Slot stays reserved through the full payment window (~10 min) — paying slowly still completes and the court isn't taken mid-payment (BUG-098)
TPS Mobile App → Cancel a booking
(signed in as a TPS user; cancel an existing booking)
Tested by Alba · 2026-05-21 · C-06 (PASSED)
  • ✅Booking shows "Cancelled" in the bookings list
  • ✅Slot is freed on the calendar
  • ✅Booking shows "Cancelled" in "My Bookings"
  • ✅Slot is available to book again
TPS Mobile App → Cancel a coaching lesson
(signed in as a TPS user; cancel an existing coaching lesson)
  • ✅Lesson shows "Cancelled" in the academy lessons list
  • ✅Lesson shows "Cancelled" in the bookings list
  • ✅Coach + court freed on the calendar
  • ✅Lesson shows "Cancelled" in "My Bookings"
  • ✅Lesson removed from "All Coachings"
  • ✅The coach's time + court slot are available to book again