Partners Portal (LVD) — LVD Import Module Acceptance Tests¶
Test series: LVD-IMP-01 to LVD-IMP-12
Objective: Validate that a partner user can upload a property-rate Excel file, validate and preview the parsed records, assign them to an MMDA, submit the import, and verify the result in the LVD History list.
Execution ownership¶
Recommended owners: Partner/Company users; LVD business owner; Revenue/Property business owner
Prerequisites: A signed-in partner session, a valid .xlsx/.xls property-rate file prepared from the sample (one Assembly per file, fewer than 1,000 rows), an available MMDA record, and a controlled UAT environment.
Execution control
Use approved UAT data only. Mask personal, authentication, and payment information in screenshots and attachments.
Feature overview¶
The LVD Import module allows a partner to add multiple properties/units at once from an Excel file:
- Upload of
.xlsx/.xlsfiles parsed on the client (first sheet only) into a preview list. - Instructions with a sample-file download (disabled in the build) and a Google Sheet template link.
- Assignment fields — a required MMDA selector, an optional Note, and an entry Type (New Entry / Changed).
- Import preview in a table (List) or card grid (Kanban) view with per-row deletion.
- Import process that posts the parsed rows plus assignment data to the backend and, on success, redirects to the LVD History list.
- LVD History list that shows imported records with search filters, pagination, and an Import Rate entry point.
Coverage summary¶
| Test ID | Feature | Scenario | Priority |
|---|---|---|---|
| LVD-IMP-01 | Navigation | Page access and flow | Critical |
| LVD-IMP-02 | Instructions | Sample file and guidance | Medium |
| LVD-IMP-03 | Upload | Excel file upload and parsing | Critical |
| LVD-IMP-04 | File Validation | Extension, format and empty-file handling | High |
| LVD-IMP-05 | Assignment | MMDA selection | Critical |
| LVD-IMP-06 | Assignment | Note and entry type | Medium |
| LVD-IMP-07 | Preview | List view and record deletion | Critical |
| LVD-IMP-08 | Preview | Kanban view | High |
| LVD-IMP-09 | Preview | Clear action | Medium |
| LVD-IMP-10 | Import | Submit and success flow | Critical |
| LVD-IMP-11 | Import | Error handling | Critical |
| LVD-IMP-12 | LVD History | Result list, search and pagination | Critical |
Implementation observations requiring UAT confirmation¶
| Observation from implementation | Required validation |
|---|---|
The sample-file download link (/Files/LVD_Data.xlsx) is rendered with the disabled prop and cannot be clicked; the Google Sheet template link opens in a new tab. |
Confirm the approved sample-file channel. |
The Excel File form item is marked required, but the Submit action only validates the MMDA form; submitting without an uploaded file posts an empty items array. |
Confirm whether a file-selection guard is required before submit. |
Excel parsing uses the first sheet only and reads all cells as text (raw: false); a corrupt or unreadable file logs to the console only, with no user notification. |
Confirm the approved parsing rules and error messaging. |
| After a successful import, only the Excel-file form is reset; the MMDA, Note, Type, and the parsed preview rows are not cleared, and the user is redirected to LVD History. | Confirm the approved post-submit form state. |
| The >1,000-row performance guidance is instruction text only; no row-count limit is enforced by the client. | Confirm whether a row-count guard is required. |
The upload accepts .xlsx and .xls via the file picker, but the client does not otherwise reject other file types. |
Confirm the approved file-type control. |
LVD History loads from /lvd/lvdlists and shows imported records; search filters (Account No, BLK ID, Digital Address, Phone, Email) and pagination update the URL query string. |
Confirm the approved search and pagination behaviour. |
LVD-IMP-01 — Page access and navigation flow¶
Feature overview¶
The LVD Import page at /lvd/import is protected by authentication and is reachable from the sidebar, from the LVD History page, and from the breadcrumb Home link. A breadcrumb (Home / LVD Import) and a header with title, description, and instructions are displayed.
Preconditions
- A signed-in partner user.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Open the import page from each entry point. |
| Expected result | The page loads from each entry point; unauthenticated access is blocked. |
| 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 |
|---|---|---|---|---|
| Sidebar entry | 1. Click the Import Rate icon in the sidebar. | The user is navigated to /lvd/import. |
PASS |
|
| Entry from LVD History | 1. Open /lvd/list.2. Click Import Rate in the list header. |
The user is navigated to /lvd/import. |
PASS |
|
| Breadcrumb Home | 1. On the import page, click Home in the breadcrumb. | The user is navigated to the dashboard. | PASS |
|
| Breadcrumb label | 1. Inspect the breadcrumb. | It reads Home / LVD Import. | PASS |
|
| Page header | 1. Inspect the page header. | The title is Import Rate with the bulk-add description and an Instructions list. | PASS |
|
| Protected access | 1. Open /lvd/import while signed out. |
The user is redirected to the login page. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-02 — Instructions and sample file¶
Feature overview¶
The Instructions section explains how to prepare the Excel file and provides a sample-file download and a Google Sheet template link.
Preconditions
- A signed-in partner user on the import page.
| Field | Value |
|---|---|
| Priority | Medium |
| Test action | Review the instructions and try both template links. |
| Expected result | The guidance is clear; the template links behave as documented. |
| 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 |
|---|---|---|---|---|
| Instructions list | 1. Review the Instructions section. | Steps cover: enter LVD as in the example, separate file by Assembly, keep rows below 1,000 for performance, verify information, then upload. | PASS |
|
| Sample file link | 1. Click Click to Download. | The link is displayed but disabled in the current build and does not download. | PASS |
See observations. |
| Google Sheet link | 1. Click Click to Open. | The Google Sheet template opens in a new tab. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-03 — Excel file upload and parsing¶
Feature overview¶
The Click to Upload Excel button accepts an .xlsx or .xls file, parses the first worksheet on the client, and populates the LVD List preview with the number of records found.
Preconditions
- A valid Excel file prepared from the sample template.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Upload a valid Excel file and a file with multiple sheets. |
| Expected result | Rows are parsed from the first sheet and the preview shows the record count. |
| 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. Click Click to Upload Excel. 2. Select a valid .xlsx file. |
The file is parsed and the LVD List header shows "LVD List (N records found)". | PASS |
Parsing shows "Loading..." while reading. |
| Multiple sheets | 1. Upload a workbook with several sheets. | Only the first sheet's rows are parsed. | PASS |
|
| Row data display | 1. Inspect the preview rows. | Each row's fields render with the expected formatting (e.g. amounts, tags, names). | PASS |
See LVD-IMP-07. |
| Upload list hidden | 1. Observe the upload control after selection. | No uploaded-file list is shown (showUploadList is off). |
PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-04 — File validation¶
Feature overview¶
The upload control restricts the file picker to .xlsx and .xls. Parsing reads the first sheet and tolerates missing values with a dash display; a corrupt file fails silently apart from a console log, and an empty file shows "No Data Found".
Preconditions
- Access to valid, empty, and corrupt Excel files for testing.
| Field | Value |
|---|---|
| Priority | High |
| Test action | Upload empty and corrupt files and inspect validation behaviour. |
| Expected result | No user-facing parse error is shown; empty content shows the empty state. |
| 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 |
|---|---|---|---|---|
| File-type picker | 1. Open the file picker. | Only .xlsx and .xls files are offered. |
PASS |
Accept attribute on the upload control. |
| Empty file | 1. Upload a file with no data rows. | The preview shows "No Data Found" and the record count reads 0 records. | PASS |
|
| Corrupt file | 1. Upload a corrupt/non-Excel file. | No user notification appears; the error is only logged to the console. | PASS |
See observations. |
| Large file | 1. Upload a file with more than 1,000 rows. | The file parses without a row-count restriction. | PASS |
Guidance text recommends under 1,000 rows only. |
| Missing cell values | 1. Upload a file with blank cells. | Missing values render as "-". | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-05 — MMDA selection¶
Feature overview¶
A required MMDA dropdown loads the assembly list from the system endpoint, supports search and clearing, and is disabled while loading.
Preconditions
- An MMDA available in the UAT environment.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Select, search, and clear the MMDA field. |
| Expected result | The required MMDA is selectable and enforced before submit. |
| 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 |
|---|---|---|---|---|
| Options load | 1. Open the MMDA dropdown. | The Metropolitan/Municipal/District Assembly list loads from /sys/allmmdalist. |
PASS |
Loading state is shown while fetching. |
| Select MMDA | 1. Choose an MMDA from the list. | The selected MMDA is shown in the field. | PASS |
|
| Search | 1. Type in the dropdown to filter. | Options filter by name or value. | PASS |
|
| Clear | 1. Click the clear control. | The selection is removed. | PASS |
|
| Submit without MMDA | 1. Leave MMDA empty and click Submit. | The import is not submitted; "Please select MMDA" is shown. | PASS |
See LVD-IMP-10. |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-06 — Note and entry type¶
Feature overview¶
An optional Note text field and an entry Type radio (New Entry / Changed, defaulting to New Entry) accompany the import.
Preconditions
- A signed-in partner user on the import page.
| Field | Value |
|---|---|
| Priority | Medium |
| Test action | Enter a note and switch the entry type. |
| Expected result | The note is accepted and the type defaults to New Entry with Changed selectable. |
| 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 |
|---|---|---|---|---|
| Note entry | 1. Type text in the Note field. | The note is accepted; the field is optional. | PASS |
|
| Default type | 1. Inspect the type radio. | New Entry is selected by default. | PASS |
|
| Switch type | 1. Select Changed. | The Changed option is selected. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-07 — Import preview — list view and record deletion¶
Feature overview¶
The preview table (List view, default) shows one row per parsed record with an action column to delete a row, followed by data columns for assembly, valuation, codes, financials, and owner/contact details.
Preconditions
- An Excel file uploaded with one or more records.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Review the preview table and delete a row. |
| Expected result | All columns render correctly and row deletion updates the list and count. |
| 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 |
|---|---|---|---|---|
| Column headers | 1. Inspect the table header. | Columns: #, Abbr Name, Assm Name, VLST No, Acc No, BLK ID, Property Centroid, Digital Address, House No, Street Name, Zone Code, Use Code, Rateable Value, Rev Name, Rev Code, Rate Impost, Flat Rate, Min Amount, Max Amount, First Name, Last Name, Other Name, Organization, Email, Contact, Nia No. | PASS |
Plus the delete action column. |
| Record count | 1. Inspect the header count. | "LVD List (N records found)" matches the parsed rows (singular/plural aware). | PASS |
|
| Formatting | 1. Inspect cell rendering. | Amounts are bold/monospace and green, tags blue, highlight purple; missing values show "-". | PASS |
|
| Row hover | 1. Hover over a row. | The row highlights with a blue left border and shadow. | PASS |
|
| Delete row | 1. Click the delete icon on a row. | The row is removed and the record count decreases. | PASS |
|
| Delete all rows | 1. Delete every row. | The table shows "No Data Found". | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-08 — Import preview — kanban view¶
Feature overview¶
The preview can be toggled to a Kanban (card grid) view that summarizes each record on a card with address, zone/use, financials, owner, and contact details.
Preconditions
- An Excel file uploaded with one or more records.
| Field | Value |
|---|---|
| Priority | High |
| Test action | Switch to the Kanban view and review the cards. |
| Expected result | Cards render with the key record details and support deletion. |
| 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 |
|---|---|---|---|---|
| View toggle | 1. Use the List/Kanban segmented control. | The preview switches between table and card grid. | PASS |
Default is List. |
| Card content | 1. Inspect a card. | Account no, block ID, assembly, address, zone/use, rateable value, rate impost, min/max (or "No Limit"), owner, NIA, email, VList, and Rev code are shown. | PASS |
|
| Card layout | 1. Resize the browser. | Cards reflow across 1–4 columns depending on screen width. | PASS |
|
| Delete on card | 1. Hover over a card and click the delete control. | The card is removed and the record count decreases. | PASS |
Delete control is visible on hover. |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-09 — Clear action¶
Feature overview¶
The Clear button removes all parsed rows from the preview and resets the Excel-file form.
Preconditions
- An Excel file uploaded with one or more records.
| Field | Value |
|---|---|
| Priority | Medium |
| Test action | Click Clear after uploading. |
| Expected result | The preview empties and the file form resets. |
| 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 |
|---|---|---|---|---|
| Clear rows | 1. Upload a file. 2. Click Clear. |
The preview shows "No Data Found" and the count reads 0 records. | PASS |
|
| Form reset | 1. After clearing, inspect the Excel-file field. | The file form is reset. | PASS |
MMDA/Note/Type are not reset by Clear. |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-10 — Submit import and success flow¶
Feature overview¶
Submit validates the MMDA form, attaches the selected MMDA to every parsed row, posts { items, mmda_id, note, type } to the import endpoint, and on success shows a notification and redirects to LVD History.
Preconditions
- A parsed Excel file with rows and a selected MMDA.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Submit a complete import. |
| Expected result | A success notification appears and the user is redirected to LVD History. |
| 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 |
|---|---|---|---|---|
| Successful submit | 1. Upload a file and select an MMDA. 2. Click Submit. |
A success notification (server message or "LVD import successfully") appears and the user is redirected to /lvd/list. |
PASS |
Posts to /lvd/lvdimport. |
| Loading state | 1. Observe the page during submit. | The page shows a spinner while the request is pending. | PASS |
|
| Submit without MMDA | 1. Upload a file and click Submit with MMDA empty. | The import is not submitted; "Please select MMDA" is shown and no request is sent. | PASS |
|
| Submit without file | 1. Leave the file unselected and click Submit. | The request is sent with an empty items array (no file-selection guard). |
PASS |
See observations. |
| Imported record visible | 1. After success, open the LVD History list. | The submitted records are listed. | PASS |
See LVD-IMP-12. |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-11 — Import error handling¶
Feature overview¶
A failed import request shows an error notification with the server message or a fallback text. The user remains on the import page and the parsed rows are preserved.
Preconditions
- A parsed Excel file and an MMDA, with a backend condition that rejects the import.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Submit an import the backend rejects. |
| Expected result | An error notification appears and the import is not applied. |
| 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 |
|---|---|---|---|---|
| Server rejection | 1. Submit data the server rejects. | An error notification (server message or "Failed to import LVD") appears. | PASS |
|
| Stay on page | 1. After the error, inspect the page. | The user remains on the import page with the parsed rows preserved. | PASS |
|
| Retry | 1. Correct the condition and submit again. | The retry succeeds and redirects to LVD History. | PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.
LVD-IMP-12 — LVD History — result list, search and pagination¶
Feature overview¶
The LVD History page at /lvd/list lists imported property-rate records with account, block, address, zone/use, financial, owner, contact, and revenue columns. It provides an advanced search form, URL-driven pagination, and an Import Rate entry point.
Preconditions
- Imported records available in the UAT environment.
| Field | Value |
|---|---|
| Priority | Critical |
| Test action | Open LVD History, search, and paginate through the records. |
| Expected result | Imported records display accurately and search/pagination work. |
| 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 access | 1. Open /lvd/list (or use the LVD button on the import page). |
The LVD History page loads with the breadcrumb Home / LVD History. | PASS |
|
| Table columns | 1. Inspect the table. | Columns: Account No, Block ID, Address, Zone & Use, Rateable Value, Rate Impost, Min/Max, Property Owner, Contact Info, Revenue Info. | PASS |
|
| Record rendering | 1. Inspect a record. | Account no (blue pill), zone/use tags, ₵ values, "No Limit" for -1, owner with NIA, contact, and revenue code are shown. |
PASS |
|
| Search filters | 1. Enter a value in the Account No, BLK ID, Digital Address, Phone, or Email filter and submit. | The list resets to page 1 and returns matching records. | PASS |
Query string is updated in the URL. |
| Reset search | 1. Click the reset control on the search form. | The filters clear and the list URL resets. | PASS |
|
| Pagination | 1. Change page size or jump to a page. | Pagination works; the URL is updated and the table reloads. | PASS |
Page sizes 50/100/250/500; shows "X–Y of Z Records". |
| Import Rate entry | 1. Click Import Rate in the list header. | The user is navigated to /lvd/import. |
PASS |
Tester notes
Record actual result, test data identifiers, device/browser/build, and any variance.