Test plansClinic app
Test Plan: Clinic App - Availability
Module: Clinic App - Availability & Online Booking URL: https://practice-stg-new.kulcare.com/cms/settings/availability Status: ✅ Complete (Tested 2026-06-11)
Test Data Requirements
| Type | Data | Purpose |
|---|---|---|
| Doctor A | Active, can add schedules | Test CRUD |
| Doctor B | Active, has existing schedules | Test view/edit |
| Doctor C | No availability set | Test "No booking" scenario |
Test Cases
Availability Settings - Admin Side ✅
| # | Test Case | Priority | Steps | Expected | Result |
|---|---|---|---|---|---|
| 1 | Select Doctor | P0 | Choose from dropdown | Shows schedules | ✅ Pass |
| 2 | Add Schedule - Single Day | P0 | Select 1 day → Save | Schedule created | ✅ Pass |
| 3 | Add Schedule - Multiple Days | P0 | Select 3 days → Save | Schedules created | ✅ Pass |
| 4 | Add Schedule - All Days | P0 | Select all days → Save | Schedules created | ✅ Pass |
| 5 | View Current Schedules | P0 | Select doctor | Shows schedules | ✅ Pass |
| 6 | Edit Schedule | P0 | Edit time → Save | Schedule updated | ✅ Pass |
| 7 | Delete Schedule | P0 | Delete → Confirm | Schedule removed | ✅ Pass |
| 8 | No Days Selected | P0 | Click Save without days | Error shown | ✅ Pass |
| 9 | No Start Time | P0 | Leave start empty → Save | Error shown | ✅ Pass |
| 10 | No End Time | P0 | Leave end empty → Save | Error shown | ✅ Pass |
| 11 | Start Time = End Time | P0 | Enter same times → Save | Error shown | ✅ Pass |
| 12 | Start Time > End Time | P0 | Enter start > end → Save | Error shown | ✅ Pass |
| 13 | Overlapping Time Slots | P0 | Create overlapping → Save | Error shown | ✅ Pass |
| 14 | Adjacent Time Slots | P1 | Create adjacent → Save | Works | ✅ Pass |
| 15 | Edit Different Schedule | P1 | Edit another schedule | Only that updated | ✅ Pass |
| 16 | Delete Confirmation - Cancel | P1 | Delete → Cancel | Not deleted | ✅ Pass |
| 17 | Delete Confirmation - Confirm | P0 | Delete → Confirm | Deleted | ✅ Pass |
| 18 | Timezone Display | P1 | View times | Correct timezone | ✅ Pass |
Online Booking Settings - Admin Side
| # | Test Case | Priority | Steps | Expected | Result |
|---|---|---|---|---|---|
| 19 | Enable Online Booking | P0 | Toggle ON → Save | Booking enabled | ✅ Pass |
| 20 | Disable Online Booking | P0 | Toggle OFF → Save | Booking disabled | ✅ Pass |
| 21 | View Doctor Fees | P0 | Go to fees page | Shows all doctors | ✅ Pass |
| 22 | Block Time Slot | P0 | Block a slot → Save | Slot blocked | ✅ Pass |
| 23 | Block Entire Day | P0 | Block day → Save | Day blocked | ✅ Pass |
| 24 | View Blocked Slots | P1 | Go to blocked | Shows blocked | ✅ Pass |
| 25 | Unblock Time Slot | P0 | Unblock → Save | Slot available | ✅ Pass |
| 26 | Set Slot Duration | P0 | Set 15/30/60 min | Duration saved | ✅ Pass |
| 27 | Set Consultation Fee | P0 | Enter fee → Save | Fee saved | ❌ FAIL |
| 28 | Update Consultation Fee | P0 | Edit fee → Save | Fee updated | ❌ FAIL |
| 29 | Per-Doctor Slot Duration | P1 | Set different duration per doctor | ⚠️ Missing — slot_duration column exists on practitioner_schedules (default 15) and practitioner_roles.default_slot_duration (default 15) but no UI to configure per-doctor slot duration | ❌ Missing Feature |
Online Booking - Doctor Side ✅
| # | Test Case | Priority | Steps | Expected | Result |
|---|---|---|---|---|---|
| 29 | Set Own Availability | P0 | Add schedule → Save | Schedule created | ✅ Pass |
| 30 | View Own Schedules | P0 | Go to availability | Shows own only | ✅ Pass |
| 31 | Edit Own Schedule | P0 | Edit → Save | Changes saved | ✅ Pass |
Availability & Online Booking Integration ✅
| # | Test Case | Priority | Steps | Expected | Result |
|---|---|---|---|---|---|
| 32 | No Schedule = No Booking | P0 | No schedule set | Booking not available | ✅ Pass |
| 33 | Schedule = Booking Available | P0 | Schedule set | Slots shown | ✅ Pass |
| 34 | Blocked Slot = No Booking | P0 | Slot blocked | Not shown in booking | ✅ Pass |
| 35 | Fee Required for Booking | P1 | No fee set | Handles gracefully | ✅ Pass |
Bugs Found
| Bug # | Description | Severity | Status |
|---|---|---|---|
| 27 | Set consultation fee (PATCH API) | 🟡 High | Open |
| 28 | Set telemedicine fees (PATCH API) | 🟡 High | Open |
| 29 | Doctor can set other doctor's schedule | 🔴 Critical | Open |
Missing Features / Gaps
| # | Description | Status |
|---|---|---|
| MF-01 | Per-doctor slot duration not configurable in UI — practitioner_schedules.slot_duration and practitioner_roles.default_slot_duration exist in DB (default 15 min). Both AvailabilityService and the booking modal read these values. But the availability settings page at /cms/settings/practiceSettings/availability has no UI to change them. All doctors use 15-min slots with no override. | Missing UI |
Confirmed Working Features
| Feature | Status |
|---|---|
| Availability Schedule CRUD | ✅ Works |
| Overlap Detection | ✅ Works |
| Delete Confirmation | ✅ Works |
| Online Booking Toggle | ✅ Works |
| Unavailability Settings | ✅ Works |
| Doctor Own Availability | ✅ Works |
| Timezone Display | ✅ Works |
| Integration with Booking | ✅ Works |
Test Execution Checklist
- TC-1 to TC-35
Test Plan Status: ✅ Complete
Tested: 2026-06-11
Session File: ../test-reports/sessions/06-availability-booking.md