Test Case Register — Web Portal, Manage Lawyers (WPLAW)¶
Coverage Summary¶
| Total TCs | Automated | Manual | Pending | Coverage % |
|---|---|---|---|---|
| 23 | 0 | 0 | 23 | 0% |
| Critical | High | Medium | Low |
|---|---|---|---|
| 7 | 7 | 8 | 1 |
Test Case Table¶
1. Add Lawyer¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-WPLAW-001 | Admin adds a new lawyer with valid data | AC-WPLAW-01 | RC-107 | 🔴 Critical | 🔵 Pending | @TC-WPLAW-001 |
Admin is on Manage Lawyers and selects Add Lawyer | Full Name: QA Lawyer 99; First name: QA; Last name: Lawyer 99; Email: qalawyer99@gmail.com; Mobile: 0912345678; Status: active; Full address: 12 Test Street, Ho Chi Minh City; Rate: 4★ |
1. Fill Full Name, First name, Last name, Email, Mobile, Status, Full address, Rate 2. Select Add |
A new lawyer record is created and appears in the Manage Lawyers list with the entered data | ⬜ Not Run | Regresses reported bug: "can't add new lawyers" (comment 2026-07-14) |
| TC-WPLAW-002 | Admin assigns an existing company to a lawyer from the Company name dropdown | AC-WPLAW-02 | RC-107 | 🟡 Medium | 🔵 Pending | @TC-WPLAW-002 |
Add Lawyer form is open; at least one company already exists | Company: Reiner Holzapfel Karosseriebau-Lackierung |
1. Open the Company name dropdown 2. Select an existing company 3. Fill remaining required fields and select Add |
The selected company is stored as the lawyer's Company name and shown in the Company name column of the list | ⬜ Not Run | UI ref: 01_Features/lawyer/wp_lawyer/screens/Screenshot 2026-08-10 at 18.21.56.png |
2. Edit Lawyer¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-WPLAW-003 | Opening Edit shows the lawyer's current data | AC-WPLAW-03 | RC-107 | 🔴 Critical | 🔵 Pending | @TC-WPLAW-003 |
Lawyer Van Lawyer (Id 526688909) exists with known field values |
Lawyer Id 526688909 |
1. Open Manage Lawyers list 2. Select Edit for the lawyer |
Edit Lawyer panel opens pre-filled with that lawyer's saved Full Name, First name, Last name, Email, Mobile, Status, Full address, Rate, and Company name — no field blank or stale | ⬜ Not Run | UI ref: 01_Features/lawyer/wp_lawyer/screens/Screenshot 2026-08-10 at 18.22.02.png |
| TC-WPLAW-004 | Saving an edit persists and immediately reflects the new data | AC-WPLAW-04 | RC-107 | 🔴 Critical | 🔵 Pending | @TC-WPLAW-004 |
Edit Lawyer panel is open for an existing lawyer | New Mobile: 0987654321 |
1. Change the Mobile field 2. Select Save 3. Observe the Manage Lawyers list without reloading the page |
The lawyer record is updated; the list row shows the newly saved Mobile value immediately, without a manual page reload | ⬜ Not Run | |
| TC-WPLAW-005 | Cancelling an edit discards unsaved changes | AC-WPLAW-05 | RC-107 | 🟡 Medium | 🔵 Pending | @TC-WPLAW-005 |
Edit Lawyer panel is open for an existing lawyer | Mobile field changed to 0900000000 (not saved) |
1. Change the Mobile field 2. Select Cancel 3. Re-open Edit for the same lawyer |
Panel closes without saving; re-opened Edit panel shows the original Mobile value, unchanged | ⬜ Not Run |
3. Delete Lawyer¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-WPLAW-006 | Selecting Delete opens a confirmation prompt | AC-WPLAW-06 | RC-107 | 🟠 High | 🔵 Pending | @TC-WPLAW-006 |
Admin is viewing the Manage Lawyers list | Lawyer: Van Lawyer |
1. Select Delete on a lawyer's row | Confirmation modal opens: "Are you sure you want to delete this record?" with Yes, I'm sure / No, cancel | ⬜ Not Run | UI ref: 01_Features/lawyer/wp_lawyer/screens/Screenshot 2026-08-10 at 18.22.08.png |
| TC-WPLAW-007 | Confirming delete removes the row from the list immediately | AC-WPLAW-07 / BR-WPLAW-04 | RC-107 | 🔴 Critical | 🔵 Pending | @TC-WPLAW-007 |
Delete confirmation modal is open for a lawyer | Lawyer: a disposable test record | 1. Select Yes, I'm sure 2. Observe the list without reloading the page |
The lawyer record is deleted; its row disappears from the list immediately, without a page reload | ⬜ Not Run | Regresses reported bug: "Delete not remove item, need to reload page" (comment 2026-07-22) |
| TC-WPLAW-008 | Confirming delete updates the total record count immediately | AC-WPLAW-08 / BR-WPLAW-04 | RC-107 | 🟠 High | 🔵 Pending | @TC-WPLAW-008 |
Delete confirmation modal is open for a lawyer; list currently shows N total records | N = current total record count | 1. Note the current total record count N 2. Select Yes, I'm sure 3. Observe the total count without reloading |
The displayed total record count decreases to N−1 immediately, without a manual page reload | ⬜ Not Run | Regresses reported bug: "delete item but number total not decrease" (comment 2026-07-23) |
| TC-WPLAW-009 | Cancelling the delete prompt keeps the record unchanged | AC-WPLAW-09 | RC-107 | 🟡 Medium | 🔵 Pending | @TC-WPLAW-009 |
Delete confirmation modal is open for a lawyer | Lawyer: Van Lawyer |
1. Select No, cancel | Modal closes; the lawyer record remains in the list, unchanged | ⬜ Not Run |
4. List Display¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-WPLAW-010 | Every lawyer row shows a valid Id | AC-WPLAW-10 | RC-107 | 🟠 High | 🔵 Pending | @TC-WPLAW-010 |
Manage Lawyers list is populated with multiple lawyer records | — | 1. Open Manage Lawyers 2. Scan the Id column across all visible rows |
Every row shows a correct, non-blank Id — no row has a missing/empty Id | ⬜ Not Run | Regresses reported bug: "Miss data ID column" (comment 2026-07-20) |
| TC-WPLAW-011 | Company name displays correctly for lawyers that have one set | AC-WPLAW-11 | RC-107 | 🟠 High | 🔵 Pending | @TC-WPLAW-011 |
A lawyer record has a Company name assigned, e.g. Van Lawyer → ` (none) vsPhuoc Tu→'Nha Trang Cathedral'` |
Lawyer: Phuoc Tu; Company: 'Nha Trang Cathedral' |
1. Open Manage Lawyers 2. Locate the lawyer's row |
The Company name column shows 'Nha Trang Cathedral' for that row |
⬜ Not Run | Regresses reported bug: "List company not display" (comment 2026-07-14) |
5. Filtering¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-WPLAW-012 | Filtering by Full Name narrows the lawyer list | AC-WPLAW-12 | RC-107 | 🔴 Critical | 🔵 Pending | @TC-WPLAW-012 |
Multiple lawyers exist, some named Lawyer * |
Full Name: Lawyer 4 |
1. Open Filter by 2. Enter Lawyer 4 in Full Name3. Select Apply |
Only lawyers whose full name matches Lawyer 4 are shown |
⬜ Not Run | Regression baseline — comment 2026-07-28 logged Filter as "Pass" |
| TC-WPLAW-013 | Filtering by Email narrows the lawyer list | AC-WPLAW-13 | RC-107 | 🟡 Medium | 🔵 Pending | @TC-WPLAW-013 |
Lawyers exist with distinct emails | Email: qcemailtest.9999+lawyer4@gmail.com |
1. Open Filter by 2. Enter the Email value 3. Select Apply |
Only the lawyer(s) with that email are shown | ⬜ Not Run | |
| TC-WPLAW-014 | Filtering by Mobile narrows the lawyer list | AC-WPLAW-14 | RC-107 | 🟡 Medium | 🔵 Pending | @TC-WPLAW-014 |
Lawyers exist with distinct mobile numbers | Mobile: 0914442710 |
1. Open Filter by 2. Enter the Mobile value 3. Select Apply |
Only lawyer(s) with that mobile number are shown | ⬜ Not Run | |
| TC-WPLAW-015 | Filtering by Status narrows the lawyer list | AC-WPLAW-15 | RC-107 | 🟡 Medium | 🔵 Pending | @TC-WPLAW-015 |
Lawyers exist with distinct Status values, e.g. check status |
Status: check status |
1. Open Filter by 2. Enter the Status value 3. Select Apply |
Only lawyers with that status are shown | ⬜ Not Run | |
| TC-WPLAW-016 | Filtering by Full address narrows the lawyer list | AC-WPLAW-16 | RC-107 | 🟡 Medium | 🔵 Pending | @TC-WPLAW-016 |
Lawyers exist with distinct addresses | Full address: Nha Trang |
1. Open Filter by 2. Enter the Full address value 3. Select Apply |
Only lawyers whose address matches Nha Trang are shown |
⬜ Not Run | |
| TC-WPLAW-017 | Filtering by Company name narrows the lawyer list | AC-WPLAW-17 | RC-107 | 🟠 High | 🔵 Pending | @TC-WPLAW-017 |
Lawyers exist under distinct companies, e.g. Werner Kobsch GmbH Autolackiertechnik |
Company name: Werner Kobsch GmbH Autolackiertechnik |
1. Open Filter by 2. Enter the Company name value 3. Select Apply |
Only lawyers belonging to that company are shown | ⬜ Not Run |
6. Import¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-WPLAW-018 | Importing a valid .xlsx/.csv file adds the lawyers it contains | AC-WPLAW-18 | RC-107 | 🔴 Critical | 🔵 Pending | @TC-WPLAW-018 |
Admin has a well-formed .xlsx file with 3 lawyer data rows below a header row |
Import file: lawyers_import_valid.xlsx (3 rows) |
1. Open Import 2. Browse/drag the valid file 3. Confirm the import |
All 3 lawyer rows from the file are created and appear in the Manage Lawyers list | ⬜ Not Run | Regresses reported bug: "can't import/export lawyers" (comment 2026-07-14); retested Pass on Staging (comment 2026-07-29) |
| TC-WPLAW-019 | Import rejects a file that isn't .xlsx or .csv | AC-WPLAW-19 / BR-WPLAW-01 | RC-107 | 🟡 Medium | 🔵 Pending | @TC-WPLAW-019 |
Import modal is open ("Files format should be xlsx, csv") | Import file: lawyers.pdf |
1. Browse/drag a .pdf file2. Attempt to confirm the import |
Import is rejected before processing; an error message states the accepted formats (xlsx, csv) | ⬜ Not Run | |
| TC-WPLAW-020 | Import does not create a lawyer record from the file's header/title row | AC-WPLAW-20 / BR-WPLAW-02 | RC-107 | 🟠 High | 🔵 Pending | @TC-WPLAW-020 |
Import file's first row is the column header/title row (e.g. Full Name, First name, ...) |
Import file: lawyers_import_valid.xlsx |
1. Import the file 2. Check the resulting lawyer records for one matching the header row's literal text |
No lawyer record is created from the header row; only the data rows below it are imported | ⬜ Not Run | Regresses reported bug: "import title file also [fails]" (comment 2026-07-28) |
| TC-WPLAW-021 | Imported Email values render as plain text, never as HTML markup | AC-WPLAW-21 / BR-WPLAW-03 | RC-107 | 🔴 Critical | 🔵 Pending | @TC-WPLAW-021 |
Import file's Email column contains raw HTML in one cell, e.g. <b>test@x.com</b> or a script-bearing payload |
Import file: lawyers_import_html_email.xlsx |
1. Import the file 2. View the resulting lawyer's Email cell in the list 3. Inspect the rendered page content for that cell |
The Email column shows the cell's content as plain, escaped text — no HTML tag is rendered and no script executes | ⬜ Not Run | Regresses reported bug: "show html in email column" (comment 2026-07-28) — security-relevant: verify output is escaped, not just visually different; flag to dev/security if raw HTML renders |
7. Export¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-WPLAW-022 | Exporting produces a downloadable file of the lawyer list | AC-WPLAW-22 | RC-107 | 🟠 High | 🔵 Pending | @TC-WPLAW-022 |
Admin is on the Manage Lawyers list | — | 1. Select Export 2. Wait for the download to complete 3. Open the downloaded file |
A file downloads successfully and contains the currently listed lawyer records | ⬜ Not Run | Regresses reported bug: "can't import/export lawyers" (comment 2026-07-14) |
8. UI / UX¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-WPLAW-023 | Add/Edit/Filter Lawyer forms show clear separation between Company name and the action buttons | AC-WPLAW-23 | RC-107 | ⚪ Low | 🔵 Pending | @TC-WPLAW-023 |
Add Lawyer, Edit Lawyer, or Filter panel is open | — | 1. Open each of Add Lawyer, Edit Lawyer, and Filter 2. View the bottom of the form |
Visible spacing exists between the Company name field and the Cancel/Add/Save/Apply buttons — not visually crowded | ⬜ Not Run | Cosmetic ask (comment 2026-07-25/07-28); no exact spacing threshold specified — see AC open question |
Gherkin Mapping (Automated TCs only)¶
No test cases are automated yet (all 23 are 🔵 Pending). Scenarios will be added here as automation is implemented.
Note Tag Reference¶
| Tag | Meaning |
|---|---|
[FLAKY] |
Unstable — fails intermittently on CI. Check logs before rerunning |
[BUG] |
Blocked by open bug — include ticket ID |
[DEP] |
Depends on specific env, mock service, fixture, or config |
[SKIP] |
Temporarily skipped — include reason and owner |
[DATA] |
Requires complex or manual data setup |