Test Case Register — Registration (REG)¶
Scope note: Step 4 "Register your vehicle" is covered (RC-8's comment "Skip Register Vehicle step for now" was disregarded per stakeholder decision, 2026-07-01). Vehicle detail overlaps the
my_vehicle(MV) feature (RC-20) — keep both registers in sync.
Coverage Summary¶
| Total TCs | Automated | Manual | Pending | Coverage % |
|---|---|---|---|---|
| 38 | 0 | 0 | 38 | 0% |
| Critical | High | Medium | Low |
|---|---|---|---|
| 6 | 8 | 19 | 5 |
Coverage % = Automated / Total × 100. Update after each sprint.
Test Case Table¶
1. Happy Path & Navigation¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-REG-001 | Complete registration end-to-end (valid data) | AC-REG-01 | RC-8 | 🔴 Critical | 🔵 Pending | @TC-REG-001 |
Guest user; email not previously registered | Unused valid email; first/last name; valid address; strong password; 1 valid vehicle | 1. Enter valid personal info 2. Verify email with correct code 3. Enter valid address 4. Set a strong password 5. Register 1 vehicle and finish | A new account is created, the user is signed in, and the home page is shown | ⬜ Not Run | |
| TC-REG-002 | Open registration from Login screen | AC-REG-02 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-002 |
Guest user on the Login screen | — | 1. On Login screen select "Don't have an account? Register" | Step 1 "Enter your personal info" is displayed | ⬜ Not Run |
2. Step 1 — Personal Info Validation¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-REG-003 | Submit valid personal info → code sent | AC-REG-03, BR-REG-04 | RC-8 | 🔴 Critical | 🔵 Pending | @TC-REG-003 |
On Step 1; email unused | johndoe@gmail.com, First John, Last Doe |
1. Enter valid email, first and last name 2. Proceed | A verification code is emailed to the address and the "Enter your verification code" screen is shown | ⬜ Not Run | |
| TC-REG-004 | Reject invalid email format | AC-REG-04, BR-REG-02 | RC-8 | 🟠 High | 🔵 Pending | @TC-REG-004 |
On Step 1 | Invalid emails: abcd.xyz, abc@, @x.com |
1. Enter a malformed email 2. Attempt to proceed | Flow does not advance; "Invalid email format" is shown on the email field | ⬜ Not Run | |
| TC-REG-005 | Reject already-registered email | AC-REG-05, BR-REG-01 | RC-8 | 🔴 Critical | 🔵 Pending | @TC-REG-005 |
An account already exists for the email | Existing email e.g. registered@gmail.com |
1. Enter an already-registered email + names 2. Proceed | Flow does not advance; "Email has already been registered" is shown | ⬜ Not Run | [DATA] pre-seed a registered account |
| TC-REG-006 | Block proceed on missing required field(s) | AC-REG-06, BR-REG-06 | RC-8 | 🟠 High | 🔵 Pending | @TC-REG-006 |
On Step 1 | Each of email / first name / last name empty in turn | 1. Leave a required field empty 2. Observe the Next action | Next stays disabled and "Please fill first and last name" prompts the missing field(s) | ⬜ Not Run | Covers all 3 required fields (same outcome) |
| TC-REG-007 | Soft warning on digits-only name (non-blocking) | AC-REG-07 | RC-8 | ⚪ Low | 🔵 Pending | @TC-REG-007 |
On Step 1; email valid & unused | First/Last name = 12345 |
1. Enter a digits-only name 2. Proceed | "Are you sure you entered your name correctly?" warning is shown but the user can still proceed | ⬜ Not Run | |
| TC-REG-029 | Re-register email of a deleted account | AC-REG-27 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-029 |
An account previously existed for the email but was deleted | Email of a deleted account e.g. deleted.user@gmail.com |
1. Enter the deleted account's email + valid names 2. Proceed | The email is treated as available and registration proceeds to email verification (no "already registered" block) | ⬜ Not Run | [DATA] seed then delete an account · behaviour to confirm — see AC open questions |
3. Step 1 — Email Verification¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-REG-008 | Accept correct verification code | AC-REG-08, BR-REG-04 | RC-8 | 🔴 Critical | 🔵 Pending | @TC-REG-008 |
A verification code was emailed | The valid 6-digit code | 1. Enter the correct 6-digit code | Code accepted; flow advances to Step 2 "Enter your address" | ⬜ Not Run | |
| TC-REG-009 | Reject incorrect verification code | AC-REG-09 | RC-8 | 🔴 Critical | 🔵 Pending | @TC-REG-009 |
A verification code was emailed | A wrong 6-digit code | 1. Enter an incorrect code | Code rejected; "Incorrect code, please enter it again" shown; stays on code screen | ⬜ Not Run | |
| TC-REG-010 | Resend code respects 5-min cooldown | AC-REG-10, BR-REG-05 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-010 |
On the verification screen with active resend cooldown | 5-min cooldown | 1. Attempt resend during the cooldown 2. Wait the full 5 minutes 3. Resend | Resend is unavailable during the 5-min cooldown; after it elapses, resending emails a new code and restarts the cooldown | ⬜ Not Run | ⚠️ Figma shows "00:23" — value differs from confirmed 5 min |
| TC-REG-030 | Reject expired verification code | AC-REG-28, BR-REG-10 | RC-8 | 🟠 High | 🔵 Pending | @TC-REG-030 |
A verification code was emailed more than 5 minutes ago | Code sent >5 min ago (expired); boundary: valid at 4:59, expired at 5:01 | 1. Wait until 5 min elapse after the code was sent 2. Enter the now-expired code | Code rejected as expired; an "expired code, request a new one" message is shown and the flow does not advance | ⬜ Not Run | [DATA] needs 5-min expiry window · BVA at the 5-min boundary |
4. Step 2 — Address¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-REG-011 | Submit valid address manually | AC-REG-11, BR-REG-06 | RC-8 | 🟠 High | 🔵 Pending | @TC-REG-011 |
On Step 2 | Postcode 70184, Street Ausschtpunkt 1 |
1. Enter valid postcode and street name & number 2. Proceed | Flow advances to Step 3 "Set your password" | ⬜ Not Run | |
| TC-REG-012 | Reject invalid postcode | AC-REG-12, BR-REG-07 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-012 |
On Step 2 | Postcode 12abc@# |
1. Enter an invalid postcode 2. Attempt to proceed | Flow does not advance; "Please enter a valid postcode" is shown | ⬜ Not Run | |
| TC-REG-013 | Select address via map search | AC-REG-13 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-013 |
On Step 2 | Search term e.g. Aussichtspunkt |
1. Open "Search your address" 2. Search and select a suggestion / place the pin | Selected postcode and street name & number are autofilled into the address fields | ⬜ Not Run | [DEP] map/geocoding service |
| TC-REG-031 | Move map pin updates the shown address | AC-REG-29 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-031 |
On Step 2 with the map open ("Move the pin until you are done") | A drag to a nearby valid location | 1. Open the map 2. Drag the pin to a new location 3. Observe the address shown above the map | The address displayed above the map updates to the pin's new location; on confirm it autofills the address fields | ⬜ Not Run | [DEP] map/geocoding service |
| TC-REG-014 | Block proceed on missing address field(s) | AC-REG-14, BR-REG-06 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-014 |
On Step 2 | Postcode or street left empty | 1. Leave a required address field empty 2. Observe Next | Next stays disabled | ⬜ Not Run |
5. Step 3 — Password¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-REG-015 | Strong password enables continue | AC-REG-15, BR-REG-03 | RC-8 | 🔴 Critical | 🔵 Pending | @TC-REG-015 |
On Step 3 | Password1! (≥8, has number+symbol, has capital, no space) |
1. Enter a password meeting all four rules | All four rules marked satisfied; strength shows "Strong"; the Next action is enabled | ⬜ Not Run | |
| TC-REG-016 | Weak password blocks continue (rule violations) | AC-REG-16, BR-REG-03 | RC-8 | 🟠 High | 🔵 Pending | @TC-REG-016 |
On Step 3 | One rule broken per run: Pass1! (short) / password1 (no capital) / Password (no number/symbol) / Password 1! (has space) |
1. Enter a password failing exactly one rule | The failing rule is marked unmet; strength shows "Weak"; the Next action stays disabled | ⬜ Not Run | Decision-table over the 4 password rules |
| TC-REG-017 | Password length boundary (7 vs 8 chars) | AC-REG-15, BR-REG-03 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-017 |
On Step 3 | Pass12! (7 chars) rejected; Pass123! (8 chars) accepted |
1. Enter a 7-char then an 8-char password (other rules met) | 7 chars → length rule unmet, Next disabled; 8 chars → all rules met, Next enabled | ⬜ Not Run | BVA on min length |
| TC-REG-020 | Password is masked with reveal toggle | AC-REG-30 | RC-8 | ⚪ Low | 🔵 Pending | @TC-REG-020 |
On Step 3 | Any password | 1. Enter a password 2. Tap the eye (reveal) control | The characters are revealed as plain text while the reveal state is active | ⬜ Not Run | UI state from Figma |
| TC-REG-032 | Password masked by default (default eye icon) | AC-REG-30 | RC-8 | ⚪ Low | 🔵 Pending | @TC-REG-032 |
On Step 3, password entered | Any password | 1. Enter a password 2. Observe the field on load / before any toggle | The password is masked by default and the eye (reveal) icon is displayed | ⬜ Not Run | UI state from Figma |
| TC-REG-033 | Hide password again via eye icon toggle | AC-REG-30 | RC-8 | ⚪ Low | 🔵 Pending | @TC-REG-033 |
On Step 3 with the password currently revealed | Any password | 1. With the password revealed, tap the eye icon again | The password is re-masked (hidden) and the eye icon returns to its default (reveal) state | ⬜ Not Run | UI state from Figma |
6. Step 4 — Register Vehicle¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-REG-034 | Default empty state shows Register vehicle CTA | AC-REG-31 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-034 |
Reached Step 4 after setting the password; no vehicle registered yet | — | 1. Arrive at Step 4 "Register your vehicle" with no vehicle added yet | An empty state ("Let's start registering your vehicle", "You can register up to 4 vehicles") with a "Register vehicle" button is shown; no vehicle list and Next/Finish is not yet actionable | ⬜ Not Run | UI empty state from Figma |
| TC-REG-021 | Register a vehicle with all valid fields | AC-REG-20 | RC-8 | 🟠 High | 🔵 Pending | @TC-REG-021 |
On Step 4 with the vehicle form open | Brand Volkswagon, Modell Atlas SEL Premium R-Line, Baujahr 2023, Kategorie Sedan, Motor, Doors 4, Seats 4, KW 260, Ownership Owner |
1. Fill all vehicle fields with valid values 2. Register the vehicle | The vehicle is added and appears in the registered-vehicle list | ⬜ Not Run | [DEP] brand/model/engine APIs |
| TC-REG-038 | Vehicle ownership defaults to Owner, switchable to Rental | AC-REG-35, BR-REG-11 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-038 |
On Step 4 with the vehicle form open | Ownership: default Owner; alternative Rental |
1. Open the vehicle form and observe the ownership control before changing it 2. Switch the ownership to Rental and register | "Owner" is pre-selected by default; exactly one of Owner/Rental is selected at any time; switching to Rental saves the vehicle with Rental ownership | ⬜ Not Run | Default-state assertion from Figma |
| TC-REG-035 | Autofill state lists vehicles + "Register more" | AC-REG-32 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-035 |
On Step 4 with ≥1 and <4 vehicles registered | 1–3 registered vehicles | 1. Register a vehicle 2. Observe the Step 4 list view | The registered vehicle(s) are listed (brand/model/specs); a "Register more vehicles" option ("You can add upto 4 vehicles") and a Finish action are shown | ⬜ Not Run | UI autofill state from Figma |
| TC-REG-022 | Finish registration after adding ≥1 vehicle | AC-REG-17, BR-REG-08 | RC-8 | 🟠 High | 🔵 Pending | @TC-REG-022 |
At least one vehicle registered in the list | 1 registered vehicle | 1. With ≥1 vehicle in the list, finish registration | Registration completes, the account is created/signed in, and the home page is shown | ⬜ Not Run | |
| TC-REG-023 | Search / filter Brand and dependent Modell | AC-REG-21 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-023 |
On the vehicle form | Brand search Vol; then open Modell |
1. Open Brand dropdown and type a term 2. Select a brand, open Modell | Brand list filters to matches; Modell list shows only models for the selected brand | ⬜ Not Run | [DEP] brand/model APIs |
| TC-REG-024 | Block registering vehicle with missing field(s) | AC-REG-22 | RC-8 | 🟠 High | 🔵 Pending | @TC-REG-024 |
On the vehicle form | One required field (e.g. Brand or KW) left empty | 1. Leave a required field unset 2. Attempt to register | The vehicle is not registered and the missing required field(s) are indicated | ⬜ Not Run | |
| TC-REG-025 | Add multiple vehicles up to the limit (≤4) | AC-REG-23, BR-REG-09 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-025 |
Fewer than 4 vehicles registered | Add 2nd, 3rd, 4th vehicle | 1. Choose "Register more vehicles" 2. Add vehicles until 4 total | Each vehicle (up to 4 total) is added to the list | ⬜ Not Run | |
| TC-REG-026 | Block 5th vehicle — limit popup | AC-REG-24, BR-REG-09 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-026 |
Exactly 4 vehicles already registered | Attempt to add a 5th | 1. With 4 vehicles, attempt to add another | Adding is blocked; a popup states the 4-vehicle limit with contact Alexis@repaircheck.com |
⬜ Not Run | BVA on max=4 |
| TC-REG-036 | Open vehicle 3-dot menu (edit / remove options) | AC-REG-33 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-036 |
At least one vehicle in the list | — | 1. Tap the 3-dot menu on a listed vehicle | A context menu with "Edit Vehicle" and "Remove Vehicle" options is shown | ⬜ Not Run | UI context menu from Figma |
| TC-REG-027 | Edit a registered vehicle | AC-REG-25 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-027 |
At least one vehicle in the list | Change e.g. No. of seats 4→7 |
1. Open the vehicle's 3-dot menu 2. Choose "Edit Vehicle" 3. Change a field and save | The vehicle's details are updated in the list | ⬜ Not Run | |
| TC-REG-028 | Remove a registered vehicle | AC-REG-26 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-028 |
At least one vehicle in the list | — | 1. Open the vehicle's 3-dot menu 2. Choose "Remove Vehicle" | The vehicle is removed from the list | ⬜ Not Run | |
| TC-REG-037 | Removing a vehicle at the limit re-enables adding | AC-REG-34 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-037 |
Exactly 4 vehicles registered (limit reached, adding blocked) | Remove 1 vehicle → 3 remain | 1. With 4 vehicles, remove one via its 3-dot menu 2. Observe the add-vehicle option | Adding is no longer blocked; the "Register more vehicles" option ("You can register up to 4 vehicles") reappears and a new vehicle can be added | ⬜ Not Run | State transition: limit → below limit |
7. Cross-cutting — Navigation & Responsiveness¶
| TC ID | Test Scenario | AC | Jira | Priority | Coverage | Cucumber Tag | Preconditions | Test Data | High-level Steps | Expected Result | Status | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TC-REG-018 | Back navigation preserves entered data | AC-REG-18 | RC-8 | ⚪ Low | 🔵 Pending | @TC-REG-018 |
On any step after Step 1; data entered | Data from a prior step | 1. Navigate back to a previous step | The previous step is shown with the previously entered data retained | ⬜ Not Run | |
| TC-REG-019 | Responsive layout on phone and tablet | AC-REG-19 | RC-8 | 🟡 Medium | 🔵 Pending | @TC-REG-019 |
Registration flow opened in mobile web app | Phone + tablet viewports | 1. Open the flow on a phone 2. Open it on a tablet | Layout renders correctly and all fields/controls remain usable on both form factors | ⬜ Not Run | [DEP] device/viewport matrix |
Gherkin Mapping (Automated TCs only)¶
Add scenarios here as automation is implemented. The TC ID tag is mandatory for result tracing.
Note Tag Reference¶
| Tag | Meaning |
|---|---|
[FLAKY] |
Unstable — fails intermittently on CI. Check logs before rerunning |
[BUG] |
Blocked by open bug — include ticket ID |
[DEP] |
Depends on specific env, mock service, fixture, or config |
[SKIP] |
Temporarily skipped — include reason and owner |
[DATA] |
Requires complex or manual data setup |