Skip to content

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/.xls files 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.