Version: 1.0
Last Updated: 2025-12-19
Total Test Cases: 59
| TC ID | Test Case Title | Priority | Type | Preconditions | Test Steps | Expected Results | Test Data |
|---|---|---|---|---|---|---|---|
| TC001 | Successful Login with Valid Credentials | Critical | Functional, Smoke | User is on login page | 1. Navigate to login page 2. Enter username: admin 3. Click Continue 4. Enter password: Admin123 5. Click Log in |
- Redirected to Service Queues page - URL contains /home/service-queues - Service Queues header visible - No error messages |
username: admin password: Admin123 |
| TC002 | Login Failure with Invalid Credentials | Critical | Functional, Negative | User is on login page | 1. Navigate to login page 2. Enter username: invaliduser 3. Click Continue 4. Enter password: wrongpassword 5. Click Log in |
- Error notification displayed - User remains on login page - URL contains /login |
username: invaliduser password: wrongpassword |
| TC003 | Login with Empty Username | High | Functional, Validation | User is on login page | 1. Navigate to login page 2. Leave username empty 3. Click Continue |
- Validation error displayed - Continue button disabled OR error message shown - Cannot proceed to password field |
username: (empty) password: Admin123 |
| TC004 | Login with Empty Password | High | Functional, Validation | User on password screen | 1. Navigate to login page 2. Enter username: admin 3. Click Continue 4. Leave password empty 5. Click Log in |
- Validation error displayed - Log in button disabled OR error shown - Form submission prevented |
username: admin password: (empty) |
| TC005 | Login with Empty Username and Password | Medium | Functional, Validation | User is on login page | 1. Navigate to login page 2. Leave username empty 3. Leave password empty 4. Attempt to click Continue |
- Validation error for username - Form submission prevented - User remains on login page |
username: (empty) password: (empty) |
| TC006 | Login with Special Characters in Username | Medium | Security, Negative | User is on login page | 1. Navigate to login page 2. Enter username: admin@#$% 3. Click Continue 4. Enter password: Admin123 5. Click Log in |
- Login fails with error message - No SQL injection/XSS vulnerabilities - Special characters handled gracefully |
username: admin@#$% password: Admin123 |
| TC007 | Login with SQL Injection Attempt | High | Security, Negative | User is on login page | 1. Navigate to login page 2. Enter username: admin' OR '1'='1 3. Click Continue 4. Enter password: ' OR '1'='1 5. Click Log in |
- Login fails - No database errors exposed - Malicious input handled safely - No system info revealed |
username: admin' OR '1'='1 password: ' OR '1'='1 |
| TC008 | Login with XSS Attempt | High | Security, Negative | User is on login page | 1. Navigate to login page 2. Enter username: <script>alert('XSS')</script> 3. Click Continue 4. Enter password: Admin123 5. Click Log in |
- Script not executed - Input sanitized/escaped - No alert popup - Login fails appropriately |
username: <script>alert('XSS')</script> password: Admin123 |
| TC009 | Login with Very Long Username | Low | Functional, Boundary | User is on login page | 1. Navigate to login page 2. Enter 500+ character username 3. Click Continue 4. Enter password: Admin123 5. Click Log in |
- Input handled gracefully - Truncated OR validation error - Application doesn't crash - Login fails with message |
username: 'a' repeated 500 times password: Admin123 |
| TC010 | Case Sensitivity in Username | Medium | Functional | User is on login page | 1. Navigate to login page 2. Enter username: ADMIN (uppercase) 3. Click Continue 4. Enter password: Admin123 5. Click Log in |
- Verify case-sensitive behavior - Document expected result - Consistent error handling |
username: ADMIN password: Admin123 |
| TC011 | Successful Logout | Critical | Functional, Smoke | User is logged in | 1. Login with valid credentials 2. Verify on Service Queues page 3. Click user menu button 4. Click Logout option |
- Redirected to login page - Login form visible - URL contains /login - Session terminated |
N/A |
| TC012 | Session Persistence After Page Refresh | High | Functional | User is logged in | 1. Login with valid credentials 2. Verify on Service Queues page 3. Refresh browser (F5) 4. Wait for page reload |
- User remains logged in - Service Queues page reloads - No redirect to login - Session data preserved |
N/A |
| TC013 | Multiple Failed Login Attempts | Medium | Security, Negative | User is on login page | 1. Attempt login with invalid credentials (5 times) 2. Observe behavior after each attempt |
- Each attempt shows error - Account lockout may occur (if implemented) - No account enumeration - Activity logged |
username: invaliduser password: wrongpassword |
| TC014 | Browser Back Button After Logout | Medium | Security | User is logged in | 1. Login with valid credentials 2. Navigate to Service Queues 3. Logout successfully 4. Click browser back button |
- Cannot access protected page - Redirect to login page - Session invalidated - No cached sensitive data |
N/A |
| TC ID | Test Case Title | Priority | Type | Preconditions | Test Steps | Expected Results | Test Data |
|---|---|---|---|---|---|---|---|
| TC015 | Service Queues Page Initial Load | Critical | Functional, Smoke | User is logged in | 1. Login with valid credentials 2. Verify redirect to Service Queues 3. Wait for page to fully load |
- Page header 'Service queues' visible - Breadcrumb shows 'Clinic' - All metrics cards displayed - Patient queue table visible - Action buttons present - No loading spinners |
N/A |
| TC016 | Navigation to Service Queues from Other Modules | High | Functional | User is on different page | 1. Navigate to another module (Appointments) 2. Click 'Service queues' in side nav 3. Wait for page load |
- Service Queues page loads - URL changes to /home/service-queues - Page content displayed correctly - No console errors |
N/A |
| TC ID | Test Case Title | Priority | Type | Preconditions | Test Steps | Expected Results | Test Data |
|---|---|---|---|---|---|---|---|
| TC017 | Checked In Patients Metric Display | High | Functional | User is on Service Queues page | 1. Locate 'Checked in patients' card 2. Verify card is visible 3. Verify 'Patients: X' label 4. Verify count is valid number |
- Card displays header - Patient count shown as 'Patients: X' - Count is numeric and non-negative - Card properly styled |
N/A |
| TC018 | Waiting For Metric Display | High | Functional | User is on Service Queues page | 1. Locate 'Waiting for:' card 2. Verify card visible 3. Verify 'Patients: X' displayed 4. Verify 'Urgent: X' displayed 5. Verify dropdown filter present |
- Card displays header - Total patients count shown - Urgent patients count shown - Dropdown filter functional - All counts numeric and non-negative |
N/A |
| TC019 | Average Wait Time Metric Display | High | Functional | User is on Service Queues page | 1. Locate 'Average wait time today' card 2. Verify card visible 3. Verify 'Minutes: X' or 'Minutes: --' displayed |
- Card displays header - Wait time shown as 'Minutes: X' or '--' - Format is consistent - Card properly styled |
N/A |
| TC020 | Metrics Update After Queue Changes | Medium | Functional, Integration | User is on Service Queues page | 1. Note current metrics values 2. Add a patient to queue 3. Observe metrics cards 4. Verify metrics update |
- Metrics refresh automatically or after reload - 'Checked in patients' count increases - 'Waiting for' count updates - Changes reflect in real-time |
Patient data |
| TC ID | Test Case Title | Priority | Type | Preconditions | Test Steps | Expected Results | Test Data |
|---|---|---|---|---|---|---|---|
| TC021 | Patient Queue Table Structure | Critical | Functional, Smoke | User is on Service Queues page | 1. Locate patient queue table 2. Verify table header 3. Verify all column headers present |
- Table visible - Columns: Name, Coming from, Priority, Status, Queue, Wait time, Actions - Table properly formatted |
N/A |
| TC022 | Empty Queue State | High | Functional | Queue is empty | 1. Navigate to Service Queues with empty queue 2. Verify table display |
- Table structure visible - Empty state message displayed - No error messages - Action buttons functional |
N/A |
| TC023 | Patient Queue Table with Data | Critical | Functional | Queue has patients | 1. Navigate to Service Queues 2. Verify patient rows displayed 3. Verify each row has data in all columns |
- Patient rows visible - Each row shows: name (link), coming from, priority, status, queue, wait time, actions - Data properly aligned |
Patient data |
| TC024 | Patient Name Link Navigation | Medium | Functional | Queue has patients | 1. Locate patient row 2. Click patient name link 3. Verify navigation |
- Navigates to patient chart - New page loads with patient details - URL contains patient ID - Back navigation returns to queues |
Patient data |
| TC025 | Queue Table Pagination | Medium | Functional | Queue has 100+ patients | 1. Navigate to Service Queues 2. Verify pagination controls 3. Click next page 4. Verify page navigation |
- Pagination controls visible - Page numbers displayed - Next/Previous buttons work - Patient count per page consistent |
Large dataset |
| TC026 | Queue Table Sorting | Low | Functional | Queue has multiple patients | 1. Click column header (Name, Wait time) 2. Verify sorting behavior 3. Click again to reverse sort |
- Table sorts by selected column - Sort order indicator displayed - Data correctly sorted - Sorting persists during session |
Patient data |
| TC ID | Test Case Title | Priority | Type | Preconditions | Test Steps | Expected Results | Test Data |
|---|---|---|---|---|---|---|---|
| TC027 | Search Patient by Name | High | Functional | Queue has multiple patients | 1. Locate search box (ID: table-toolbar-search-:rt:) 2. Enter patient name or partial name 3. Verify search results |
- Search box accepts input - Table filters to matching patients - Non-matching patients hidden - Search is case-insensitive - Partial matches supported |
Patient data |
| TC028 | Search with No Results | Medium | Functional, Negative | Queue has patients | 1. Enter search term with no matches 2. Verify empty state |
- Table shows empty state - Message indicates no results - Search can be cleared - No errors occur |
Search: 'NonExistentName' |
| TC029 | Clear Search Results | Medium | Functional | Search has been performed | 1. Perform a search 2. Clear search box 3. Verify table resets |
- All patients displayed again - Table returns to original state - Filters remain applied |
N/A |
| TC030 | Filter by Service | High | Functional | Queue has patients from different services | 1. Locate Service filter (ID: downshift-:r1k:-toggle-button) 2. Click to open dropdown 3. Select a service 4. Verify filtering |
- Dropdown opens with options - Selecting service filters table - Only patients from selected service shown - Filter can be cleared |
Service names |
| TC031 | Filter by Status | High | Functional | Queue has patients with different statuses | 1. Locate Status filter (ID: downshift-:rs:-toggle-button) 2. Click to open dropdown 3. Select a status 4. Verify filtering |
- Dropdown shows status options - Table filters to selected status - Label shows 'Show patients with status: [selected]' - Multiple selections may be supported |
Status values |
| TC032 | Filter by Waiting For | Medium | Functional | Queue has patients | 1. Locate 'Waiting for:' metrics card 2. Click dropdown filter (ID: downshift-:r1g:-toggle-button) 3. Select an option 4. Verify filtering |
- Dropdown opens with options - Selecting option filters data - Metrics update accordingly - Filter can be cleared |
N/A |
| TC033 | Combined Search and Filter | Medium | Functional, Integration | Queue has multiple patients | 1. Apply service filter 2. Apply status filter 3. Enter search term 4. Verify combined filtering |
- All filters work together (AND logic) - Only patients matching ALL criteria shown - Clearing one filter maintains others - Results are accurate |
Patient data, filters |
| TC034 | Filter Persistence Across Navigation | Low | Functional | Filters have been applied | 1. Apply filters to queue table 2. Navigate to another page 3. Return to Service Queues 4. Verify filter state |
- Filters may reset OR persist - Document expected behavior - Behavior is consistent |
N/A |
| TC ID | Test Case Title | Priority | Type | Preconditions | Test Steps | Expected Results | Test Data |
|---|---|---|---|---|---|---|---|
| TC035 | Open Add Patient to Queue Dialog | Critical | Functional | User is on Service Queues page | 1. Click 'Add patient to queue' button (testid: Search Patient Button) 2. Verify dialog opens |
- Modal/dialog opens - Patient search interface displayed - Search input field focused - Dialog has close button - Background dimmed |
N/A |
| TC036 | Search Patient in Add Dialog | High | Functional | Add patient dialog is open | 1. Enter patient name or ID in search 2. Verify search results appear 3. Select a patient from results |
- Search executes as user types - Matching patients displayed - Patient details shown (name, ID, age) - Clicking patient selects them |
Patient search data |
| TC037 | Add Patient to Specific Queue | Critical | Functional | Patient selected in add dialog | 1. Select patient from search results 2. Choose queue from dropdown 3. Set priority (if applicable) 4. Set status (if applicable) 5. Click Add/Submit button 6. Verify patient added |
- Patient appears in queue table - Row shows correct queue, priority, status - Metrics update (checked in count increases) - Success notification displayed - Dialog closes automatically |
Patient data, queue data |
| TC038 | Add Patient - Cancel Action | Medium | Functional | Add patient dialog is open | 1. Search for a patient 2. Select a patient 3. Click Cancel or close button 4. Verify dialog closes |
- Dialog closes without adding patient - No changes to queue table - No error messages - User returns to Service Queues page |
N/A |
| TC039 | Add Patient - Validation Errors | Medium | Functional, Negative | Add patient dialog is open | 1. Attempt to submit without selecting patient 2. Attempt to submit without selecting queue 3. Verify validation messages |
- Validation errors displayed - Required fields highlighted - Submit button may be disabled - Cannot proceed without valid data |
N/A |
| TC040 | Add Duplicate Patient to Same Queue | Medium | Functional, Negative | Patient already in a queue | 1. Attempt to add same patient to same queue 2. Verify system behavior |
- System prevents duplicate OR shows warning - Existing queue entry highlighted - User informed of existing entry |
Existing patient data |
| TC ID | Test Case Title | Priority | Type | Preconditions | Test Steps | Expected Results | Test Data |
|---|---|---|---|---|---|---|---|
| TC041 | Move Patient to Different Queue | High | Functional | Queue has at least one patient | 1. Locate patient row in table 2. Click 'Move' button (aria-label='Move') 3. Verify move dialog opens 4. Select destination queue 5. Click confirm/submit 6. Verify patient moved |
- Move dialog opens - Available queues listed - Selecting queue moves patient - Patient row updates with new queue name - Success notification displayed |
Patient data, queue names |
| TC042 | Move Patient - Cancel Action | Medium | Functional | Move dialog is open | 1. Click 'Move' button for a patient 2. Move dialog opens 3. Click Cancel or close button 4. Verify dialog closes |
- Dialog closes without moving patient - Patient remains in original queue - No changes to table - No error messages |
N/A |
| TC043 | Move Patient - Update Priority/Status | Medium | Functional | Move dialog is open | 1. Open move dialog for a patient 2. Change priority level 3. Change status 4. Submit changes 5. Verify updates |
- Priority updates in table - Status updates in table - Changes are saved - Wait time may reset or adjust |
Patient data, priority/status values |
| TC ID | Test Case Title | Priority | Type | Preconditions | Test Steps | Expected Results | Test Data |
|---|---|---|---|---|---|---|---|
| TC044 | Clear Queue - Confirmation Dialog | High | Functional | Queue has patients | 1. Click 'Clear queue' button 2. Verify confirmation dialog appears |
- Confirmation dialog displayed - Warning message explains action - 'Confirm' and 'Cancel' buttons present - Action not executed until confirmed |
N/A |
| TC045 | Clear Queue - Confirm Action | High | Functional | Confirmation dialog is open | 1. Click 'Clear queue' button 2. Confirmation dialog appears 3. Click 'Confirm' button 4. Verify queue cleared |
- All patients removed from queue - Table shows empty state - Metrics reset to zero - Success notification displayed - Action logged (if applicable) |
N/A |
| TC046 | Clear Queue - Cancel Action | Medium | Functional | Confirmation dialog is open | 1. Click 'Clear queue' button 2. Confirmation dialog appears 3. Click 'Cancel' button 4. Verify queue unchanged |
- Dialog closes - Queue remains unchanged - All patients still visible - No notifications |
N/A |
| TC047 | Clear Empty Queue | Low | Functional, Edge Case | Queue is already empty | 1. Verify queue is empty 2. Click 'Clear queue' button 3. Verify system behavior |
- Button may be disabled OR action completes without error - Appropriate message shown - No negative side effects |
N/A |
| TC048 | Expand All Rows | Low | Functional | Queue has patients with expandable rows | 1. Click 'Expand all rows' button 2. Verify all rows expand |
- All patient rows expand - Additional details visible - Button text may change to 'Collapse all rows' - Expansion is smooth |
Patient data |
| TC049 | Collapse All Rows | Low | Functional | All rows are expanded | 1. Click 'Collapse all rows' button 2. Verify all rows collapse |
- All expanded rows collapse - Only summary info visible - Button text changes to 'Expand all rows' - Table returns to compact view |
N/A |
| TC ID | Test Case Title | Priority | Type | Preconditions | Test Steps | Expected Results | Test Data |
|---|---|---|---|---|---|---|---|
| TC050 | Wait Time Display Format | Medium | Functional | Queue has patients | 1. Verify wait time column in table 2. Check format of wait time values |
- Wait time in consistent format - Format: 'X min', 'X hours Y min', etc. - Time calculated from check-in - Time updates periodically or on refresh |
Patient data |
| TC051 | Wait Time Calculation Accuracy | Medium | Functional | Patient has been in queue for known duration | 1. Note patient check-in time 2. Calculate expected wait time 3. Compare with displayed wait time 4. Verify accuracy |
- Displayed wait time matches calculation - Time accurate within acceptable margin - Time increases as patient waits - Time resets appropriately when moved |
Patient data with timestamps |
| TC052 | Average Wait Time Calculation | Medium | Functional | Multiple patients have been processed | 1. Note individual wait times 2. Calculate expected average 3. Compare with 'Average wait time today' metric 4. Verify accuracy |
- Average calculated correctly - Metric updates as patients added/removed - Calculation includes only relevant patients - Display shows '--' when no data |
Patient data |
| TC053 | Priority Display in Table | Medium | Functional | Queue has patients with different priorities | 1. Verify priority column in table 2. Check priority values (Urgent, Normal, Low) 3. Verify visual indicators |
- Priority clearly displayed - Visual indicators (colors, icons) differentiate levels - Urgent patients highlighted - Priority is sortable (if sorting available) |
Patient data with priorities |
| TC054 | Urgent Patient Count in Metrics | Medium | Functional | Queue has urgent patients | 1. Locate 'Waiting for:' metrics card 2. Verify 'Urgent: X' count 3. Compare with table data |
- Urgent count matches number of urgent patients in table - Count updates when priority changes - Count is accurate and real-time |
Patient data with urgent priority |
| TC055 | Status Change Workflow | Medium | Functional | Patient is in queue | 1. Select a patient 2. Change status (via Move or Edit action) 3. Verify status updates 4. Verify metrics update |
- Status changes successfully - Table reflects new status - Metrics update accordingly - Change is persisted |
Patient data, status values |
| TC ID | Test Case Title | Priority | Type | Preconditions | Test Steps | Expected Results | Test Data |
|---|---|---|---|---|---|---|---|
| TC056 | Keyboard Navigation | Medium | Accessibility | User is on Service Queues page | 1. Use Tab key to navigate through elements 2. Use Enter/Space to activate buttons 3. Use arrow keys in dropdowns 4. Verify all interactive elements accessible |
- All interactive elements keyboard accessible - Focus indicators visible - Tab order is logical - No keyboard traps - Screen reader announcements appropriate |
N/A |
| TC057 | ARIA Labels and Roles | Medium | Accessibility | User is on Service Queues page | 1. Inspect elements with screen reader 2. Verify ARIA labels present 3. Verify roles are appropriate 4. Test with NVDA or JAWS |
- All buttons have aria-label or accessible name - Table has proper ARIA roles - Form fields have labels - Dynamic content changes announced - Page structure is semantic |
N/A |
| TC058 | Page Load Time | Medium | Performance | User is logged in | 1. Clear browser cache 2. Navigate to Service Queues page 3. Measure page load time 4. Verify performance metrics |
- Page loads within acceptable time (< 3 seconds) - First Contentful Paint (FCP) < 1.5s - Time to Interactive (TTI) < 3s - No performance warnings in console |
N/A |
| TC059 | Large Queue Performance | Medium | Performance | Queue has 100+ patients | 1. Navigate to Service Queues with large dataset 2. Perform search, filter, sort operations 3. Measure response times 4. Verify UI remains responsive |
- Page handles large datasets gracefully - Pagination or virtual scrolling implemented - Operations complete within acceptable time - No browser freezing or lag - Memory usage reasonable |
Large dataset (100+ patients) |
| Module | Test Cases | Priority Breakdown |
|---|---|---|
| Authentication | TC001-TC014 (14) | Critical: 3, High: 3, Medium: 7, Low: 1 |
| Page Load & Navigation | TC015-TC016 (2) | Critical: 1, High: 1 |
| Metrics | TC017-TC020 (4) | High: 3, Medium: 1 |
| Patient Queue Table | TC021-TC026 (6) | Critical: 2, High: 1, Medium: 2, Low: 1 |
| Search & Filter | TC027-TC034 (8) | High: 3, Medium: 4, Low: 1 |
| Add Patient | TC035-TC040 (6) | Critical: 2, High: 1, Medium: 3 |
| Move Patient | TC041-TC043 (3) | High: 1, Medium: 2 |
| Queue Operations | TC044-TC049 (6) | High: 2, Medium: 1, Low: 3 |
| Wait Time & Priority | TC050-TC055 (6) | Medium: 6 |
| Accessibility & Performance | TC056-TC059 (4) | Medium: 4 |
| TOTAL | 59 | Critical: 8, High: 12, Medium: 31, Low: 8 |
Document Version: 1.0
Last Updated: 2025-12-19
Author: Senior SDET