Customers — Test Cases
Manual acceptance test cases for the customer flows. See Customers concept for the underlying model and Add a Customer for the user-facing instructions.
TC-CUST-001 — Create a residential customer with email and phone
Verifies: Add a Customer
Preconditions:
- Logged in as Office (with
customers.create). - No customer exists with the test email
tc-cust-001@example.com.
Steps:
- Navigate to Customers -> Add Customer.
- Choose Residential for type.
- Enter
First Name:Test. - Enter
Last Name:Resident. - Enter
Email:tc-cust-001@example.com. - Enter
Phone:5551234. - Select Save.
Expected:
- Redirect to the customers index with a success flash message.
- The new customer appears in the list with the green Residential indicator.
- Opening the customer shows the phone normalized to the tenant's country/area code (e.g.
+1-869-555-1234).
TC-CUST-002 — Create a commercial customer with company name only
Verifies: Add a Customer
Preconditions:
- Logged in as Office.
Steps:
- Navigate to Customers -> Add Customer.
- Choose Commercial for type.
- Leave
First NameandLast Nameblank. - Enter
Company Name:Test Commercial Co.. - Select Save.
Expected:
- Customer is created successfully.
- Display name in the index reads
Test Commercial Co.. - Editing the customer shows blue Commercial indicator.
TC-CUST-003 — Validation rejects customer with no name fields
Verifies: Add a Customer, Customers concept
Preconditions:
- Logged in as Office.
Steps:
- Navigate to Customers -> Add Customer.
- Choose any type.
- Leave
First Name,Last Name, andCompany Nameall blank. - Enter
Email:tc-cust-003@example.com. - Select Save.
Expected:
- Form does not submit.
- A validation error appears requiring at least one of First Name or Company Name.
- No customer record is created.
TC-CUST-004 — Multi-email customer normalizes phone list
Verifies: Customers concept
Preconditions:
- Logged in as Office.
Steps:
- Navigate to Customers -> Add Customer.
- Choose Residential.
- Enter
First Name:Multi. - Enter
Email:a@example.com, b@example.com. - Enter
Phone:5551111, 5552222. - Select Save.
Expected:
- Customer is created.
- Editing the customer shows two normalized emails and two normalized phone numbers, each in its own visible chip or list row.
- Sending a notification (e.g. via TC-QUO-004) addresses both emails.
TC-CUST-005 — Customer integration enabled hides edit fields
Verifies: Customers concept
Preconditions:
- Logged in as Admin (so you can flip the setting).
- Tenant setting
customer_integration_enabledis initially off.
Steps:
- Navigate to Settings and turn
customer_integration_enabledon. - Navigate to Customers -> Add Customer.
Expected:
- Editable customer fields managed by the external system are hidden or disabled.
- Importing customers from CSV is disabled (no Import button visible, or the Import action is rejected).
- Reset the setting to off at the end of the test.
TC-CUST-006 — Discount rate flows through to a quotation
Verifies: Customers concept
Preconditions:
- Logged in as Office.
- A customer exists with
discount_rateset to10(10%).
Steps:
- Navigate to Quotations -> Add Quotation.
- Pick the customer with the 10% discount.
- Add a single line item priced at
$100. - Select Save.
- View the quotation totals.
Expected:
- The subtotal is
$100. - The discount line shows
-$10.00. - The pre-tax total reflects the discount applied.