Test plansClinic app
Test Plan: Follow-ups Page
Module: Clinic App — Follow-ups Management
Code Audit Date: 2026-06-17
URL: https://practice-stg-new.kulcare.com/cms/follow-ups
API: FHIR /clinical/appointments with follow_up=true (filters by_type('fixed') only)
Status: ✅ Complete
Code Audit Summary
Key Findings
| Finding | Detail |
|---|---|
| ✓ icon = Edit, NOT Confirm | Green check opens UpdateAppointmentModal — confusing UX (Bug #54) |
follow_up=true = by_type('fixed') | Telemedicine follow-ups excluded from list (Bug #55) |
| No phone in API response | patient object only has display + mrn, no phone (Bug #53) |
| No search filter | Only practitioner + date range filters |
| No density toggle | Table density not configurable |
| Pagination exists | Frontend (useFollowUpsPagination) + backend pagination |
SECTION 1: Page Load & Tabs
| # | Test Case | Priority | Expected | Status |
|---|---|---|---|---|
| FU-01 | Load follow-ups page | P0 | Page loads with Pending tab selected | ✅ PASS |
| FU-02 | Pending tab — with follow-ups | P0 | Shows scheduled follow-ups | ✅ PASS |
| FU-03 | Pending tab — empty | P0 | Empty state message | ✅ PASS |
| FU-04 | Switch to Cancelled tab | P0 | Click Cancelled → shows cancelled | ✅ PASS |
| FU-05 | Cancelled tab — empty | P0 | Empty state | ✅ PASS |
| FU-06 | Cancelled tab — shows reason + date | P0 | Cancellation details shown | ✅ PASS |
| FU-07 | Loading state | P0 | Loading spinner | ✅ PASS |
| FU-08 | Error state | P1 | Error view with retry | ✅ PASS |
SECTION 2: Row Display
| # | Test Case | Priority | Expected | Status |
|---|---|---|---|---|
| FU-10 | Patient name | P0 | Name displayed | ✅ PASS |
| FU-11 | Practitioner name | P0 | Doctor shown | ✅ PASS |
| FU-12 | Appointment date | P0 | Date displayed | ✅ PASS |
| FU-13 | Appointment time | P0 | Time shown | ✅ PASS |
| FU-14 | Notes displayed | P1 | Notes if present | ✅ PASS |
| FU-15 | Phone number | P0 | Patient phone shown | Bug #53 ❌ |
SECTION 3: Edit (✓ icon)
✓ = Edit, not Confirm. Opens UpdateAppointmentModal. Confusing UX (Bug #54).
| # | Test Case | Priority | Expected | Status |
|---|---|---|---|---|
| FU-20 | ✓ opens edit modal | P0 | UpdateAppointmentModal opens | ✅ PASS |
| FU-21 | Edit — date/time | P0 | Change → Save | ✅ PASS |
| FU-22 | Edit — doctor | P0 | Change → Save | ✅ PASS |
| FU-23 | Edit — notes | P1 | Add note → Save | ✅ PASS |
| FU-24 | Edit — cancel | P0 | Cancel → no changes | ✅ PASS |
| FU-25 | Edit to telemedicine → disappears | P0 | Change type → removed from list | Bug #55 ❌ |
| FU-26 | After edit → stays in Pending | P0 | No completion flow | ✅ PASS |
SECTION 4: Cancel
| # | Test Case | Priority | Expected | Status |
|---|---|---|---|---|
| FU-30 | Cancel button visible | P0 | ✗ on pending rows | ✅ PASS |
| FU-31 | Cancel dialog opens | P0 | CancelModal | ✅ PASS |
| FU-32 | Confirm cancel with reason | P0 | Moves to Cancelled tab | ✅ PASS |
| FU-33 | Cancel dialog → cancel | P0 | No change | ✅ PASS |
| FU-34 | Reason required | P1 | Validation | ✅ PASS |
| FU-35 | Button disabled during API | P1 | Greyed out while cancelling | ✅ PASS |
SECTION 5: Filters
| # | Test Case | Priority | Expected | Status |
|---|---|---|---|---|
| FU-50 | Practitioner filter | P0 | Filter by doctor | ✅ PASS |
| FU-51 | Clear practitioner | P0 | All → shows all | ✅ PASS |
| FU-52 | Date range | P1 | Filter by date | ✅ PASS |
| FU-53 | Clear date range | P1 | Shows all dates | ✅ PASS |
SECTION 6: Pagination
| # | Test Case | Priority | Expected | Status |
|---|---|---|---|---|
| FU-60 | Next/prev page | P1 | Navigate | ✅ PASS |
| FU-61 | Page size change | P1 | Refetch | ✅ PASS |
SECTION 7: Integration
| # | Test Case | Priority | Expected | Status |
|---|---|---|---|---|
| FU-70 | Billing → Follow-ups | P0 | Follow-up from billing appears here | ✅ PASS |
| FU-71 | Edit sync | P1 | Changes reflect in appointments | ✅ PASS |
🐛 Bugs Found
| Bug # | Test ID | Description | Severity |
|---|---|---|---|
| 53 | FU-15 | Phone not shown — API patient object only has display + mrn | 🟠 Medium |
| 54 | FU-20 | ✓ icon = Edit, not Confirm — confusing UX | 🟠 Medium |
| 55 | FU-25 | Telemedicine follow-ups disappear — follow_up=true filters by_type('fixed') only | 🟡 High |
Test Summary
| Section | Tests | Passed | Failed |
|---|---|---|---|
| 1. Page & Tabs | 8 | 8 | 0 |
| 2. Row Display | 6 | 5 | 1 |
| 3. Edit (✓) | 7 | 6 | 1 |
| 4. Cancel | 6 | 6 | 0 |
| 5. Filters | 4 | 4 | 0 |
| 6. Pagination | 2 | 2 | 0 |
| 7. Integration | 2 | 2 | 0 |
| Total | 35 | 33 | 2 |
Status: ✅ Complete Last Updated: 2026-06-17