Ratepayer Portal — Disputes Module Acceptance Tests¶
Test series: RPP-DSP-01 to RPP-DSP-13
Objective: Validate that a ratepayer can view, search, and filter their dispute tickets; create a new dispute with category, title, related record, and supporting documents; review dispute details and conversation history; and reply to an open dispute.
Execution ownership¶
Recommended owners: Ratepayer/Public Portal users; Customer Service observer
Prerequisites: A signed-in ratepayer with dispute tickets in several statuses, an eligible category and title for a new dispute, and controlled dispute data.
Execution control
Use approved UAT data only. Mask personal, authentication, and payment information in screenshots and attachments.
Feature overview¶
The Disputes module covers the ratepayer's dispute/claim journey:
- My Disputes list with search, status filter, and pagination.
- Create Dispute with category, title, related property/bill, description, attachments, and contact selection.
- Dispute Details with a ticket snapshot, a conversation thread, a progress timeline, and a reply form.
- Reply to dispute with attachments and a read-only state for resolved tickets.
Coverage summary¶
| Test ID | Feature | Scenario | Priority |
|---|---|---|---|
| RPP-DSP-01 | Disputes List | List display and navigation | Critical |
| RPP-DSP-02 | Disputes List | Search | High |
| RPP-DSP-03 | Disputes List | Status filter | High |
| RPP-DSP-04 | Disputes List | Pagination | Medium |
| RPP-DSP-05 | Create Dispute | Category and title selection | Critical |
| RPP-DSP-06 | Create Dispute | Details and validation | High |
| RPP-DSP-07 | Create Dispute | Attachments | High |
| RPP-DSP-08 | Create Dispute | Submission | Critical |
| RPP-DSP-09 | Dispute Details | Snapshot and status | Critical |
| RPP-DSP-10 | Dispute Details | Conversation and history | Critical |
| RPP-DSP-11 | Reply | Reply to dispute | Critical |
| RPP-DSP-12 | Reply | Validation and resolved state | High |
| RPP-DSP-13 | Navigation | Dispute navigation flow | Medium |
Implementation observations requiring UAT confirmation¶
| Observation from implementation | Required validation |
|---|---|
| Priority is hardcoded to High when creating a dispute; the form offers no priority selection. | Confirm the approved priority handling. |
The list search is sent to the API as the title parameter. |
Confirm the approved search fields. |
| Reply is disabled only when the ticket status is Resolved or Closed; the on-screen "Reply Rules" note states replies are available while Open or In Review. | Confirm the intended reply availability by status. |
| Attachment uploads in creation and replies send only the file name to the API, not file content or a URL. | Confirm the approved attachment handling. |
| Changing the Dispute Category resets the selected Dispute Title. | Confirm the expected behaviour. |
RPP-DSP-01 — Disputes list display and navigation¶
Feature overview¶
The My Disputes page at /disputes lists the ratepayer's dispute tickets with ticket number, title, category, status, and an action to open details.
Preconditions
- A signed-in ratepayer with at least one dispute ticket.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Open the My Disputes page and open a ticket. |
| Expected result | Tickets render with correct data and open the details page. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Page header | 1. Open /disputes. |
The heading "My Disputes" with a Create Dispute button is shown. | PASS |
|
| Table columns | 1. Inspect the disputes table. | Ticket, Title, Category, Status, and Action columns are shown. | PASS |
|
| Open via ticket link | 1. Click a ticket number. | The user is redirected to /disputes/<id>. |
PASS |
|
| Open via action | 1. Click the view icon on a ticket row. | The user is redirected to /disputes/<id>. |
PASS |
|
| Empty state | 1. Open the page with no tickets. | "No dispute tickets found" is shown. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-02 — Disputes list search¶
Feature overview¶
The search box filters tickets by ticket number or title. The search resets the page to one.
Preconditions
- A signed-in ratepayer with tickets distinguishable by ticket number or title.
| Field | Value |
|---|---|
| Priority | High |
| Test action | Search for a ticket by ticket number or title. |
| Expected result | The list updates with matching tickets. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Search by ticket | 1. Type a ticket number or title in the search box. | The list shows matching tickets and resets to page 1. | PASS |
Sent as the title parameter. |
| Clear search | 1. Click the clear icon. | The search is cleared. | PASS |
|
| No results | 1. Search for a value with no match. | "No dispute tickets found" is shown. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-03 — Disputes list status filter¶
Feature overview¶
Tickets can be filtered by status: Pending, Open, In Review, Resolved, and Rejected. Each status has a coloured tag.
Preconditions
- A signed-in ratepayer with tickets in several statuses.
| Field | Value |
|---|---|
| Priority | High |
| Test action | Filter tickets by status. |
| Expected result | The list shows only tickets with the selected status. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Status filter | 1. Select Resolved in the status filter. | Only resolved tickets are shown. | PASS |
|
| Status tags | 1. Inspect the status tags. | Pending, Open, In Review, Resolved, and Rejected each have a distinct colour. | PASS |
|
| Reset filters | 1. Click Reset Filters. | Search and status filter are cleared and the full list is restored. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-04 — Disputes list pagination¶
Feature overview¶
The table is paginated with a page-size changer and a ticket counter.
Preconditions
- A signed-in ratepayer with more tickets than the page size.
| Field | Value |
|---|---|
| Priority | Medium |
| Test action | Navigate pages and change the page size. |
| Expected result | Pagination updates the list and shows correct totals. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Page navigation | 1. Go to the next page. | The next set of tickets is displayed. | PASS |
|
| Page size change | 1. Change the page size. | The list shows more tickets per page. | PASS |
|
| Ticket counter | 1. Inspect the counter. | "X of Y ticket(s) shown" is displayed. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-05 — Create dispute — category and title selection¶
Feature overview¶
The Create Dispute page at /disputes/create requires a dispute category and a dispute title. The title list is loaded for the selected category and resets when the category changes.
Preconditions
- A signed-in ratepayer on the Create Dispute page.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Select a dispute category and title. |
| Expected result | The title list depends on the selected category. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Category selection | 1. Select a dispute category. | Category options load and a title can be selected. | PASS |
Loads from /sys/disputecategories. |
| Title dependency | 1. Select a category and open the title list. | Titles load for the selected category. | PASS |
Loads from /sys/disputetitles. |
| Title disabled before category | 1. Open the title list before selecting a category. | The title selector is disabled. | PASS |
|
| Category change resets title | 1. Select a title, then change the category. | The selected title is cleared. | PASS |
See observations. |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-06 — Create dispute — details and validation¶
Feature overview¶
The form captures the related property/bill, a description of the issue, a preferred contact method, and contact information. Required fields are validated before submission.
Preconditions
- A signed-in ratepayer on the Create Dispute page.
| Field | Value |
|---|---|
| Priority | High |
| Test action | Complete and validate the dispute details. |
| Expected result | Required fields are enforced and contact fields adapt to the contact method. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Related property/bill | 1. Select a related property or bill. | Options load and a value can be selected. | PASS |
Loads from /sys/disputerelatedtypes. |
| Description | 1. Enter a description of the issue. | The description is captured. | PASS |
|
| Contact method | 1. Select Phone or Email. | The contact-information placeholder changes accordingly. | PASS |
Email is the default. |
| Contact information | 1. Enter phone or email contact information. | The value is captured. | PASS |
|
| Required validation | 1. Submit with required fields empty. | Field-level errors appear for missing values. | PASS |
|
| Server input errors | 1. Trigger a server validation rejection. | Server input errors are displayed on the relevant fields. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-07 — Create dispute — attachments¶
Feature overview¶
Supporting documents can be uploaded (up to five files). Files must be JPG, JPEG, PNG, or PDF up to 5MB each.
Preconditions
- A signed-in ratepayer on the Create Dispute page.
| Field | Value |
|---|---|
| Priority | High |
| Test action | Upload supporting documents. |
| Expected result | Valid files are accepted and invalid files are rejected. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Upload valid file | 1. Upload a JPG/PNG/PDF file. | The file is accepted. | PASS |
|
| Invalid type | 1. Upload a non-image/non-PDF file. | "You can only upload jpg, jpeg, png, pdf file only!" is shown. | PASS |
|
| Oversized file | 1. Upload a file above 5MB. | "Please upload file smaller than 5MB!" is shown. | PASS |
|
| Max count | 1. Upload more than five files. | "You can only upload 5 file only!" is shown. | PASS |
|
| Remove file | 1. Remove an uploaded file. | A confirmation prompt appears and the file is removed. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-08 — Create dispute — submission¶
Feature overview¶
Submitting the form creates the dispute and returns the ratepayer to the My Disputes list.
Preconditions
- A fully completed Create Dispute form.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Submit a new dispute. |
| Expected result | A success notification appears and the user returns to the list. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Submit dispute | 1. Complete the form and click Submit Dispute. | A "Dispute Created" notification appears and the user is redirected to /disputes. |
PASS |
Posts to /web/disputeclaim. |
| Cancel | 1. Click Cancel. | The user returns to /disputes without creating a dispute. |
PASS |
|
| In-flight state | 1. Submit and observe the button while pending. | The submit button shows a loading state. | PASS |
|
| Server rejection | 1. Submit data the server rejects. | An error notification appears with the server message. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-09 — Dispute details — snapshot and status¶
Feature overview¶
The details page at /disputes/<id> shows the ticket header, an info summary, a ticket snapshot, and a status display.
Preconditions
- A signed-in ratepayer with a dispute ticket.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Open a dispute's details page and review the snapshot. |
| Expected result | Ticket information and status are accurate. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Header | 1. Open /disputes/<id>. |
Title, status badge, and info boxes (Ticket ID, Created, Request From, Contact) are shown. | PASS |
|
| Ticket snapshot | 1. Inspect the Ticket Snapshot. | Ticket ID, created at, category, related type, related ID, contact method, contact information, created by, and summary are shown. | PASS |
|
| Ticket status | 1. Inspect the Ticket Status card. | The current status is shown. | PASS |
|
| Resolved banner | 1. Open a resolved ticket. | A read-only banner is shown for resolved tickets. | PASS |
|
| Not found | 1. Open an invalid dispute ID. | "Dispute ticket not found." is shown with a Back to disputes action. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-10 — Dispute details — conversation and history¶
Feature overview¶
The Conversation section shows the claim and all replies as a thread, and the Progress Timeline lists the reply history.
Preconditions
- A signed-in ratepayer with a dispute that has replies.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Review the conversation thread and progress timeline. |
| Expected result | Messages and history are accurate and ordered. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Conversation thread | 1. Inspect the Conversation section. | The original claim and all replies are shown with author and timestamp. | PASS |
|
| Message count | 1. Inspect the message counter. | The number of messages is shown. | PASS |
|
| Auto-scroll | 1. Open the conversation. | The thread scrolls to the latest message. | PASS |
|
| Progress timeline | 1. Inspect the Progress Timeline. | Each reply is listed with the sender and time. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-11 — Reply to dispute¶
Feature overview¶
An open dispute can be answered using the reply form, which supports a message and optional attachments.
Preconditions
- A signed-in ratepayer with a dispute that is not resolved or closed.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Send a reply to an open dispute. |
| Expected result | The reply is sent and appears in the conversation. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Send reply | 1. Enter a reply message and click Send Reply. | A "Reply Sent" notification appears and the conversation refreshes with the new reply. | PASS |
Posts to /web/disputeclaimreply. |
| Reply with attachment | 1. Attach a file and send the reply. | The file is referenced in the reply. | PASS |
|
| Reply rules | 1. Inspect the Reply Rules card. | The rules explain reply availability, attachments, and read-only behaviour. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-12 — Reply validation and resolved state¶
Feature overview¶
The reply message is required, and the reply form becomes read-only for resolved or closed tickets.
Preconditions
- A signed-in ratepayer with an open dispute and a resolved dispute.
| Field | Value |
|---|---|
| Priority | High |
| Test action | Test reply validation and the resolved state. |
| Expected result | Empty replies are rejected and resolved tickets cannot be replied to. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| Empty reply | 1. Click Send Reply with an empty message. | A field-level error requires the reply message. | PASS |
|
| Resolved ticket | 1. Open a resolved/closed ticket. | The message box and Send Reply button are disabled. | PASS |
|
| Reply failure | 1. Trigger a server error while replying. | An error notification is shown. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
RPP-DSP-13 — Dispute navigation flow¶
Feature overview¶
The module provides navigation between the list, creation, and details pages.
Preconditions
- A signed-in ratepayer.
| Field | Value |
|---|---|
| Priority | Medium |
| Test action | Move between the dispute pages. |
| Expected result | Navigation works in both directions. |
| Execution result | PASS |
| Evidence reference | Insert link or reference |
| Defect reference | Insert ID or None |
Test scenarios
| Scenario | Test steps | Expected result | Pass/Fail | Remarks |
|---|---|---|---|---|
| List to create | 1. On /disputes, click Create Dispute. |
The user is redirected to /disputes/create. |
PASS |
|
| Create breadcrumb | 1. On the create page, click My Disputes. | The user returns to /disputes. |
PASS |
|
| List to details | 1. On /disputes, open a ticket. |
The user is redirected to /disputes/<id>. |
PASS |
|
| Details back | 1. On the details page, click Back to disputes. | The user returns to /disputes. |
PASS |
|
| Create to list after submit | 1. Submit a dispute. | The user is redirected to /disputes. |
PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.