# QA Test Report — Edit Account Form: Required Field Asterisk Indicators

| | |
|---|---|
| **URL** | https://dev.genetools.proworks.io/my-account/edit-account/ |
| **Date Executed** | 2026-04-16 |
| **Tester** | Claude (automated) |
| **Test Account** | JWTest |

---

## Test Objective

Verify that all form fields which are server-side required (carry `data-val-required` validation) display an asterisk (`*`) appended to the end of their label text. Non-required fields should NOT display an asterisk.

---

## Test Results

| TC # | Test Case | Expected | Actual | Result |
|------|-----------|----------|--------|--------|
| TC-01 | Full Name label asterisk | Label reads "Full Name *" (required field) | Label reads "Full Name *" ✓ | PASS |
| TC-02 | Company Name label asterisk | Label reads "Company Name *" (required field) | Label reads "Company Name *" ✓ | PASS |
| TC-03 | FedEx Number label asterisk | Label reads "FedEx Number *" (required field) | Label reads "FedEx Number *" ✓ | PASS |
| TC-04 | Invoice Email Address — no asterisk | Label reads "Invoice Email Address" (not required, no *) | Label reads "Invoice Email Address" — no * ✓ | PASS |
| TC-05 | Invoice Contact Name — no asterisk | Label reads "Invoice Contact Name" (not required, no *) | Label reads "Invoice Contact Name" — no * ✓ | PASS |
| TC-06 | Customer Number — no asterisk | Label reads "Customer Number" (not required, no *) | Label reads "Customer Number" — no * ✓ | PASS |
| TC-07 | Billing — First Name label asterisk | Label reads "First Name *" (required field) | Label reads "First Name *" ✓ | PASS |
| TC-08 | Billing — Last Name label asterisk | Label reads "Last Name *" (required field) | Label reads "Last Name *" ✓ | PASS |
| TC-09 | Billing — Address Line 1 label asterisk | Label reads "Address Line 1 *" (required field) | Label reads "Address Line 1 *" ✓ | PASS |
| TC-10 | Billing — Address Line 2 — no asterisk | Label reads "Address Line 2" (not required, no *) | Label reads "Address Line 2" — no * ✓ | PASS |
| TC-11 | Billing — City label asterisk | Label reads "City *" (required field) | Label reads "City *" ✓ | PASS |
| TC-12 | Billing — State/Region label asterisk | Label reads "State/Region *" (required field) | Label reads "State/Region *" ✓ | PASS |
| TC-13 | Billing — Country label asterisk | Label reads "Country *" (required field) | Label reads "Country *" ✓ | PASS |
| TC-14 | Billing — Zip Code label asterisk | Label reads "Zip Code *" (required field) | Label reads "Zip Code *" ✓ | PASS |
| TC-15 | Billing — Telephone label asterisk | Label reads "Telephone *" (required field) | Label reads "Telephone *" ✓ | PASS |
| TC-16 | VAT Number label asterisk | Label reads "VAT Number *" (field has `data-val-required`) | Label reads "VAT Number" — asterisk missing ✗ | **FAIL** |
| TC-17 | Shipping same as billing — no asterisk | Checkbox label has no * (not a required data field) | Label has no * ✓ | PASS |
| TC-18 | Shipping — First Name label asterisk | Label reads "First Name *" (required field) | Label reads "First Name *" ✓ | PASS |
| TC-19 | Shipping — Last Name label asterisk | Label reads "Last Name *" (required field) | Label reads "Last Name *" ✓ | PASS |
| TC-20 | Shipping — Address Line 1 label asterisk | Label reads "Address Line 1 *" (required field) | Label reads "Address Line 1 *" ✓ | PASS |
| TC-21 | Shipping — Address Line 2 — no asterisk | Label reads "Address Line 2" (not required, no *) | Label reads "Address Line 2" — no * ✓ | PASS |
| TC-22 | Shipping — City label asterisk | Label reads "City *" (required field) | Label reads "City *" ✓ | PASS |
| TC-23 | Shipping — State/Region label asterisk | Label reads "State/Region *" (required field) | Label reads "State/Region *" ✓ | PASS |
| TC-24 | Shipping — Country label asterisk | Label reads "Country *" (required field) | Label reads "Country *" ✓ | PASS |
| TC-25 | Shipping — Zip Code label asterisk | Label reads "Zip Code *" (required field) | Label reads "Zip Code *" ✓ | PASS |
| TC-26 | Shipping — Telephone label asterisk | Label reads "Telephone *" (field has `data-val-required`) | Label reads "Telephone" — asterisk missing ✗ | **FAIL** |

---

## Defect Log

### BUG-001 — VAT Number field is required but label is missing asterisk (*)

| | |
|---|---|
| **Severity** | Medium |
| **Status** | Open |
| **Field** | VAT Number |
| **Field ID** | `accountPageModel_VATNumber` |
| **Section** | Account / Billing area |
| **Expected** | Label displays "VAT Number *" since the input carries `data-val-required="The VAT Number field is required."` |
| **Actual** | Label displays "VAT Number" — no asterisk is present |
| **Impact** | Users are not visually informed that this field is required before attempting to save, leading to unexpected validation errors |

---

### BUG-002 — Shipping Telephone field is required but label is missing asterisk (*)

| | |
|---|---|
| **Severity** | Medium |
| **Status** | Open |
| **Field** | Shipping — Telephone |
| **Field ID** | `accountPageModel_ShippingTelePhone` |
| **Section** | Shipping Address |
| **Expected** | Label displays "Telephone *" since the input carries `data-val-required="The TelePhone field is required."` |
| **Actual** | Label displays "Telephone" — no asterisk is present |
| **Impact** | Inconsistency with the Billing Telephone field (which correctly shows *). Users filling in the shipping section will not know this field is mandatory, causing a confusing form save failure. Note also a minor inconsistency: Billing Telephone uses "Telephone is required." while Shipping uses "The TelePhone field is required." (mixed casing/phrasing in validation messages). |

---

## Test Summary

| Metric | Count |
|--------|-------|
| Total test cases | 26 |
| Passed | 24 |
| Failed | 2 |
| Defects logged | 2 |
| Pass rate | 92.3% |

---

## Notes & Observations

The form is divided into three logical sections: **Account Info** (Full Name, Company Name, FedEx Number, Invoice Email Address, Invoice Contact Name, Customer Number), **Billing Address**, and **Shipping Address**. Required field asterisks are correctly applied to 24 of 26 required fields. The two failures are both cases where a label presents a field as optional when server-side validation treats it as required.

- The "Shipping address is same as billing address" checkbox was excluded from required-field asterisk scope as it is a UI toggle, not a data input field.
- The Customer Number field is disabled/read-only and correctly carries no asterisk.
- As a secondary observation, the two Telephone fields use inconsistent validation message phrasing ("Telephone is required." vs. "The TelePhone field is required."), which should be standardized for a consistent user experience.
