Skip to content

iDARMS Website — Forms and Auth Handoffs Acceptance Tests

Test series: WEB-09A, WEB-10, WEB-11
Objective: Validate public-site form validation and submit behaviour for Contact and Objection (via the site /api/contact proxy), plus the How to Register → Ratepayer Portal registration handoff.

Execution ownership

Recommended owners: Communications/web content owner; Customer Service observer; UX/visual reviewer

Prerequisites: Approved website build/URL; desktop Chrome at 1440×900; approved UAT fixtures only (see below); ability to open a new browser tab for the portal handoff; sandbox contact backend reachable (https://iprssandbox.cisstaging.com/api/web/contact).

Execution control

Use approved UAT contact/objection data only. Mask personal information in notes. This module does not embed screenshots — record Pass/Fail and tester notes only. Contact and Objection POST to the Next.js route /api/contact, which proxies to the sandbox web contact API. On success the UI shows a success message and clears the form; on failure it shows an error and keeps field values. Do not mark “message received / actioned by ops” as PASS unless Customer Service confirms receipt outside this module. recaptcha_token is sent as an empty string (no widget on the marketing site).

Feature overview

The public website does not host a login or registration form. This module covers:

  • Start Registration handoff (WEB-09A) — /HowtoRegister → Ratepayer Portal /auth/register in a new tab; account creation continues under RPP-AUTH-05.
  • Contact form (WEB-10) — /Contact_us required/invalid/valid submit workflows for Send Message.
  • Objection / difficulties form (WEB-11) — /HowtoRegister required/invalid/valid submit workflows for Submit Objection.

Approved UAT fixtures (non-production)

Field Value
Full name QA Tester
Email (valid) qa-tester@internal.local
Email (invalid — custom rule) qa-tester@invalid (no dot in domain; may still satisfy HTML5)
Phone (valid digits) 233241234567 (digit-only; passes /^\+?[1-9]\d{1,14}$/; NumberInput cannot type +)
Company UAT Internal
Property ID PROP-UAT-0001
Message / description This is controlled UAT placeholder feedback for the public website contact workflow. No personal data.
Password (portal only) Password123!Ratepayer Portal cases only; not used on the marketing site

Contact field matrix (/Contact_us)

Label Required Client rules Notes
Full Name * Yes Non-empty trim Error: Full Name is required
Email Address * Yes Non-empty; /^[^\s@]+@[^\s@]+\.[^\s@]+$/ Also type="email". Custom: Invalid email address
Phone Number * Yes Non-empty; /^\+?[1-9]\d{1,14}$/ Uses NumberInput (type="number") — cannot enter +; use digit-only fixture (WEB-FORM-02)
Company / Organization No None Use UAT Internal
Inquiry Type * Yes One of: General Inquiry, Sales, Support, Partnership, Project Discussion, Other Error: Inquiry Type is required
Message * Yes Non-empty; ≥ 10 characters Error: Message is required / Message must be at least 10 characters

Objection field matrix (/HowtoRegister)

Label Required Client rules Notes
Full Name * Yes Non-empty
Email Address * Yes Same email regex as Contact
Phone Number * Yes Same E.164-style rule as Contact Digit-only fixture; NumberInput cannot enter + (WEB-FORM-02)
Property ID * Yes Non-empty trim Error: Property ID is required
Objection Category * Yes Must select a real category Property Valuation, Billing Dispute, Service Quality, Technical Issue, Other
Detailed Description * Yes ≥ 10 characters

Auth entry points (not local forms)

CTA Where Expected destination UAT case
LOGIN/REGISTER Dual header (all pages) Portal root https://ratepayer.idarms.cisstaging.com/ (target="_blank") WEB-08 / WEB-09; auth under RPP
Register Now!!! Home hero Portal root (same host) WEB-09
Floating Register Now FAQ chat companion (after hero scroll) Portal root (same host) Note with chrome; not a separate form case
Start Registration /HowtoRegister empowering card https://ratepayer.idarms.cisstaging.com/auth/register WEB-09ARPP-AUTH-05
Track Now / Login to Access /HowtoRegister cards Not wired in current build WEB-FORM-04

Coverage summary

Test ID Feature Scenario Priority
WEB-09A Auth handoff How to Register → portal registration Critical
WEB-10 Forms Contact form validation High
WEB-11 Forms Objection form validation High

Implementation observations requiring UAT confirmation

Observation from implementation Required validation
Contact/Objection submit via POST /api/contact → sandbox iprssandbox.cisstaging.com/api/web/contact; success UI messages then clear fields; failure shows an error banner. Confirmed under WEB-10 / WEB-11 (PASS). Ops inbox confirmation remains out of band.
Phone is required on both forms but uses NumberInput (type="number"), so + cannot be typed while the regex allows an optional +. Use digit-only phone fixture; blank phone must show Phone Number is required (WEB-FORM-02).
recaptcha_token is always "" (no reCAPTCHA widget). Note only; do not fail solely for missing widget unless product requires it.
Track Now / Login to Access CTAs are unwired. Fail only if cycle scope requires those destinations (WEB-FORM-04).
Header LOGIN/REGISTER opens portal root, not /auth/register. By design for login entry; registration path is Start Registration/auth/register (WEB-FORM-05).

WEB-09A — How to Register → portal registration handoff

Feature overview

On /HowtoRegister, Start Registration opens the Ratepayer Portal registration page in a new tab. Website UAT proves the handoff URL and new-tab behaviour only; account creation, OTP/email verification, and login belong to Ratepayer Portal Authentication (RPP-AUTH-05RPP-AUTH-16).

Preconditions

  • /HowtoRegister available at 1440×900.
  • Ability to open and inspect a new browser tab (mask session cookies).
Field Value
Priority Critical
Test action On the empowering cards, click Start Registration. Confirm a new browser tab opens to the Ratepayer Portal registration page. Do not complete portal registration in this case — hand off to RPP-AUTH-05.
Expected result Destination is exactly https://ratepayer.idarms.cisstaging.com/auth/register (or the approved cycle-equivalent host with path /auth/register). Link uses target="_blank" and rel="noreferrer". HowtoRegister page remains open in the original tab.
Execution result PASS
Evidence reference None (image evidence removed; results recorded in tester notes)
Defect reference None

Test scenarios

Scenario Test steps Expected result Pass/Fail Remarks
Start Registration new-tab handoff 1. Open /HowtoRegister at 1440×900.
2. Locate Start Registration.
3. Click once.
4. Inspect the new tab URL and original tab.
New tab opens https://ratepayer.idarms.cisstaging.com/auth/register; marketing tab remains open; link uses target="_blank" and rel="noreferrer". PASS Confirmed URL. Continue account creation under RPP-AUTH-05.
Unwired companion CTAs 1. Observe Track Now and Login to Access. Record as known gap if destinations are required by cycle scope; otherwise note as out of scope. PASS Noted known gap WEB-FORM-04; out of scope for this handoff case.

Scope boundary

Website UAT proves the handoff URL and new-tab behaviour only. Portal account creation and login are Ratepayer Portal Authentication cases.

Tester notes

Manual cycle 2026-08-03. Desktop Chrome. Start Registrationhttps://ratepayer.idarms.cisstaging.com/auth/register in new tab; HowtoRegister remained open. No image attached — PASS.

WEB-10 — Contact form validation

Feature overview

The Contact form on /Contact_us validates required fields (including phone) and email format client-side, then POSTs to /api/contact. Success shows Your message has been sent successfully. and clears the form; failure shows an error message.

Preconditions

  • /Contact_us available with an empty form.
  • Approved fixtures from the table above (include digit-only phone).
  • Sandbox contact API reachable from the website host.
Field Value
Priority High
Test action Empty → required blanks (including phone) → invalid email (qa-tester@invalid) → filled fixtures with phone 233241234567 → submit.
Expected result Required errors: Full Name, Email, Phone Number, Inquiry Type, Message. Invalid email: Invalid email address. Valid submit shows success message, clears fields, and returns HTTP success from /api/contact (proxy to sandbox).
Execution result PASS
Evidence reference None (image evidence removed; results recorded in tester notes)
Defect reference None (phone via NumberInput — digit-only fixture WEB-FORM-02)

Test scenarios

Scenario Test steps Expected result Pass/Fail Remarks
Required blanks 1. Open empty form → evidence contact_default.png.
2. Click Send Message with all fields empty.
Red field errors for Name, Email, Phone, Inquiry Type, Message; form does not clear. PASS Phone required.
Invalid email 1. Fill Name, Phone (233241234567), Inquiry Type (Support), Message (≥10 chars).
2. Enter qa-tester@invalid.
3. Submit.
Custom error Invalid email address (or documented HTML5 tooltip). PASS
Controlled submit 1. Fill valid fixtures (Name QA Tester, email qa-tester@internal.local, phone 233241234567, company UAT Internal, Inquiry Type, placeholder message).
2. Capture filled state → contact_filled.png.
3. Click Send Message.
Success text Your message has been sent successfully.; fields clear; Network shows POST /api/contact → success. PASS Ops receipt out of band.

Tester notes

Manual cycle 2026-08-10. Contact form working end-to-end via /api/contact with success UI — PASS.

WEB-11 — How to Register objection form

Feature overview

The objection / difficulties form on /HowtoRegister validates Name, Email, Phone, Property ID, Category, and Description client-side, then POSTs to /api/contact. Success shows Your objection has been submitted successfully. and clears the form; failure shows an error message.

Preconditions

  • /HowtoRegister available with the objection form visible.
  • Approved fixtures including phone 233241234567, PROP-UAT-0001, and category Billing Dispute (or another real option).
  • Sandbox contact API reachable from the website host.
Field Value
Priority High
Test action Default → required errors (including phone + Property ID) → invalid email → filled → submit.
Expected result Required errors for Name, Email, Phone, Property ID, Category, Description. Valid submit shows success message, clears fields, and returns HTTP success from /api/contact.
Execution result PASS
Evidence reference None (image evidence removed; results recorded in tester notes)
Defect reference None (phone via NumberInput — digit-only fixture WEB-FORM-02)

Test scenarios

Scenario Test steps Expected result Pass/Fail Remarks
Required blanks 1. Open empty objection form → objection_default.png.
2. Click Submit Objection with required fields empty.
Errors for Name, Email, Phone, Property ID, Category, Description; form does not clear. PASS Phone and Property ID required.
Invalid email 1. Fill Name, Phone, Property ID, Category, Description (≥10 chars).
2. Enter qa-tester@invalid.
3. Submit.
Custom Invalid email address (or documented HTML5 error). PASS
Controlled submit 1. Fill Name QA Tester, email qa-tester@internal.local, phone 233241234567, Property ID PROP-UAT-0001, Category Billing Dispute, placeholder description.
2. Capture filled → objection_filled.png.
3. Click Submit Objection.
Success text Your objection has been submitted successfully.; fields clear; Network shows POST /api/contact → success. PASS Ops receipt out of band.

Tester notes

Manual cycle 2026-08-10. Objection form working end-to-end via /api/contact with success UI — PASS.