Skip to content

Test Case Register — Lawyer (LAW)

Coverage Summary

Total TCs Automated Manual Pending Coverage %
24 0 0 24 0%
Critical High Medium Low
7 8 8 1

AC source: 01_Features/lawyer/wa_lawyer/./wa_lawyer_ac.md — all 19 AC (AC-LAW-01…19) and 7 business rules (BR-LAW-01…07) have ≥1 covering TC (BR-LAW-06 verified indirectly at the Home-page tile level).

⚠️ UI coverage is pending. 01_Features/lawyer/wa_lawyer/screens is empty, so no design was available. TCs marked [DEP] UI pending assert only behaviour the ticket describes; the concrete lawyer-card contents and filter control type must be confirmed against the design before execution. No UI element was invented.

✅ All 14 open questions resolved (2026-08-06) — see ## Confirmed Decisions in the AC spec: filter semantics (≥N★), unrated-lawyer + tie-break handling, no minimum review count, Calendly link flexibility + new-tab behaviour, "Terminierungsoptionen" single option, login-required permission (Admin config), lazy-loaded list (no hard cap), filter resets on navigate-away/reload, and German-priority localisation. TCs below updated to match; TC-LAW-020 and TC-LAW-021 added.

Test Case Table

1. Navigation & List Display

TC ID Test Scenario AC Jira Priority Coverage Cucumber Tag Preconditions Test Data High-level Steps Expected Result Status Note
TC-LAW-001 Open the lawyer list from "Unfall Rechtsberatung" AC-LAW-01 RC-116 🔴 Critical 🔵 Pending @TC-LAW-001 The "Unfall Rechtsberatung" entry point is reachable in the Web App
At least 3 lawyers exist
3 lawyers with distinct names and ratings 1. Open the Web App. 2. Select "Unfall Rechtsberatung". The Lawyer list page opens and lists all 3 available lawyers; each entry shows at least the lawyer's name and rating. ⬜ Not Run [DEP] UI pending — card contents unconfirmed
TC-LAW-002 Reach every lawyer via lazy loading AC-LAW-14 RC-116 🟠 High 🔵 Pending @TC-LAW-002 25 lawyers exist — more than fit on one screen 25 lawyers, uniquely identifiable 1. Open the Lawyer list page. 2. Scroll to the bottom of the loaded list repeatedly. 3. Count the entries. Further lawyers load as the user scrolls (lazy loading); all 25 lawyers are eventually reachable — no hard cap (confirmed: not the RC-124 20-item cap bug). ⬜ Not Run [DATA] [BUG] related open bug RC-124

2. Sorting

TC ID Test Scenario AC Jira Priority Coverage Cucumber Tag Preconditions Test Data High-level Steps Expected Result Status Note
TC-LAW-003 Order the unfiltered list rating-descending AC-LAW-02, BR-LAW-02 RC-116 🟠 High 🔵 Pending @TC-LAW-003 Lawyers with differing ratings exist Lawyers rated 5★, 4★ and 3★ 1. Open the Lawyer list page without applying any filter. The 5★ lawyer appears above the 4★ lawyer, which appears above the 3★ lawyer — highest rating on top. ⬜ Not Run [DATA]
TC-LAW-004 Keep a stable order for equal ratings AC-LAW-08, BR-LAW-02 RC-116 ⚪ Low 🔵 Pending @TC-LAW-004 Two lawyers share the same rating 2 lawyers both rated 4★ 1. Open the Lawyer list page. 2. Record the order. 3. Reload the page. Both 4★ lawyers appear consecutively, and their relative order is identical on every reload (confirmed: no secondary sort key required — any consistent order is acceptable). ⬜ Not Run [DATA]

3. Rating Filter

TC ID Test Scenario AC Jira Priority Coverage Cucumber Tag Preconditions Test Data High-level Steps Expected Result Status Note
TC-LAW-005 Filter by 2★ returns that rating and above AC-LAW-03, BR-LAW-01, BR-LAW-02 RC-116 🔴 Critical 🔵 Pending @TC-LAW-005 The Lawyer list page is open with no filter applied Lawyers rated 1★, 2★, 3★ and 4★ 1. Apply the 2★ rating filter. 2. Inspect the result set and its order. The 2★, 3★ and 4★ lawyers are listed, the 1★ lawyer is excluded, and the result is ordered 4★ → 3★ → 2★. ⬜ Not Run [DATA]
TC-LAW-006 Raise the filter to narrow the result AC-LAW-04 RC-116 🟡 Medium 🔵 Pending @TC-LAW-006 The 2★ filter is applied, listing lawyers rated 2★, 3★, 4★ Lawyers rated 2★, 3★ and 4★ 1. Change the rating filter from 2★ to 4★. Only the 4★ lawyer remains listed; the 2★ and 3★ lawyers are removed from the result. ⬜ Not Run [DATA]
TC-LAW-007 Clear the rating filter to restore the full list AC-LAW-05 RC-116 🟡 Medium 🔵 Pending @TC-LAW-007 A 4★ filter is applied, listing a subset of the lawyers Lawyers rated 2★, 3★ and 4★ 1. Clear / reset the rating filter. All lawyers are listed again in rating-descending order, and the filter control shows no active selection. ⬜ Not Run [DEP] UI pending — reset control unconfirmed
TC-LAW-008 Filter by the highest rating with no match AC-LAW-06 RC-116 🟠 High 🔵 Pending @TC-LAW-008 No lawyer in the list has a 5★ rating Lawyers rated 2★, 3★ and 4★ only 1. Apply the 5★ rating filter. 2. Inspect the page and the filter control. No lawyer entry is listed, an explicit "no results" state is shown instead of a blank page, and the filter is still set to 5★. ⬜ Not Run
TC-LAW-009 Filter by the lowest rating keeps every lawyer AC-LAW-07 RC-116 🟡 Medium 🔵 Pending @TC-LAW-009 The Lawyer list page is open with no filter applied Lawyers spanning 1★ to 5★ 1. Record the unfiltered list. 2. Apply the lowest rating filter (1★). Every lawyer rated 1★ or higher is listed — the result is identical to the unfiltered list (lower boundary). ⬜ Not Run [DATA]
TC-LAW-010 Offer the full 1★–5★ range in the filter, including lawyers with few reviews BR-LAW-03 RC-116 🟡 Medium 🔵 Pending @TC-LAW-010 The Lawyer list page is open
At least one lawyer has zero reviews
1 lawyer with 0 reviews, others with decimal aggregate ratings (e.g. 3.25★) 1. Open the rating filter control. 2. Inspect the selectable values. 3. Inspect the lawyer with 0 reviews. The filter offers each whole-star rating from 1★ to 5★; every displayed lawyer's aggregate rating (which may be decimal) falls inside that range; the lawyer with 0 reviews still displays a rating (no minimum-review gating). ⬜ Not Run

4. Appointment Scheduling (Calendly)

TC ID Test Scenario AC Jira Priority Coverage Cucumber Tag Preconditions Test Data High-level Steps Expected Result Status Note
TC-LAW-011 Present the scheduling options for a lawyer AC-LAW-09 RC-116 🟠 High 🔵 Pending @TC-LAW-011 The Lawyer list page is open with at least one lawyer entry 1 lawyer offering "Terminierungsoptionen" 1. Select "Terminierungsoptionen" on a lawyer entry. "Termin vereinbaren" is presented as the only scheduling option for that lawyer (no other options, unlike expert_call_appointment). ⬜ Not Run
TC-LAW-012 Open Calendly via "Termin vereinbaren" AC-LAW-10, BR-LAW-04 RC-116 🔴 Critical 🔵 Pending @TC-LAW-012 The "Terminierungsoptionen" options are presented for a lawyer Calendly page for that lawyer (may be a shared or per-lawyer link — e.g. calendly.com/alextyl/jaekelgmbh) 1. Select "Termin vereinbaren". 2. Inspect the destination that opens. The Calendly scheduling page opens in a new browser tab and offers selectable appointment slots. ⬜ Not Run [DEP] External service
TC-LAW-013 Return to the list after opening Calendly AC-LAW-11 RC-116 🟡 Medium 🔵 Pending @TC-LAW-013 A 3★ filter is applied and Calendly was opened from a lawyer entry in a new tab Lawyers rated 3★ and 4★ 1. Switch back to the original Lawyer-list browser tab (Calendly stays open in its own tab). 2. Inspect the filter and result. The Lawyer list page is usable, the 3★ filter is still applied, and the same lawyers are listed in the same order. ⬜ Not Run

5. Error Handling & Resilience

TC ID Test Scenario AC Jira Priority Coverage Cucumber Tag Preconditions Test Data High-level Steps Expected Result Status Note
TC-LAW-014 Handle a lawyer-list load failure AC-LAW-13 RC-116 🟠 High 🔵 Pending @TC-LAW-014 The lawyer data source is stubbed to fail (error / timeout) — 1. Open the Lawyer list page while the data source is failing. An error state with a retry action is shown; no empty or partial list is presented as a valid result. ⬜ Not Run [DEP] Needs fault injection
TC-LAW-015 Handle Calendly being unreachable AC-LAW-12 RC-116 🟡 Medium 🔵 Pending @TC-LAW-015 Access to the Calendly page is blocked
A 3★ filter is applied
— 1. Select "Termin vereinbaren" on a lawyer entry. 2. Return to the list. The failure is reported to the user with a way to retry, and the Lawyer list page remains usable with the 3★ filter intact. ⬜ Not Run [DEP] Needs network blocking

6. Responsive / Compatibility

TC ID Test Scenario AC Jira Priority Coverage Cucumber Tag Preconditions Test Data High-level Steps Expected Result Status Note
TC-LAW-016 Operate the Lawyer page on a phone AC-LAW-15, BR-LAW-05 RC-116 🔴 Critical 🔵 Pending @TC-LAW-016 A phone-sized viewport
At least 3 lawyers exist
3 lawyers 1. Open the Lawyer list page on a phone. 2. Apply a rating filter. 3. Open "Terminierungsoptionen". List entries, the rating filter and "Terminierungsoptionen" are fully visible and operable; nothing is clipped or overlapping and no horizontal scrolling is needed. ⬜ Not Run [DEP] UI pending — no design to compare against
TC-LAW-017 Operate the Lawyer page on a tablet, both orientations AC-LAW-16, BR-LAW-05 RC-116 🔴 Critical 🔵 Pending @TC-LAW-017 An iPad Pro (or equivalent tablet), portrait then landscape 3 lawyers 1. Open the Lawyer list page in portrait. 2. Switch to landscape. 3. Use the rating filter and "Terminierungsoptionen" in both. The layout renders correctly in both orientations with no clipped, overlapping or misaligned elements, and both controls stay operable. ⬜ Not Run [BUG] Verifies the iPad Pro landscape defect fixed under RC-116
TC-LAW-018 Keep the filter across an orientation change AC-LAW-17, BR-LAW-07 RC-116 🟡 Medium 🔵 Pending @TC-LAW-018 A 3★ filter is applied on a tablet in portrait orientation Lawyers rated 3★, 4★ and 5★ 1. Rotate the device to landscape. 2. Inspect the filter and the result list. The 3★ filter is still applied and the same lawyers are listed in the same order (orientation change is the one case where the filter persists — see BR-LAW-07). ⬜ Not Run

7. Permission & Filter Reset

TC ID Test Scenario AC Jira Priority Coverage Cucumber Tag Preconditions Test Data High-level Steps Expected Result Status Note
TC-LAW-020 Unauthenticated user cannot access the Lawyer page AC-LAW-18, BR-LAW-06 RC-116 🔴 Critical 🔵 Pending @TC-LAW-020 User is logged out
The Lawyer feature is Admin-configured "login required"
— 1. While logged out, attempt to open the Lawyer page (via entry point or direct route). 2. Observe the result. The lawyer list is not shown, and the user is redirected to the Login page. ⬜ Not Run
TC-LAW-021 Rating filter resets when returning to the page or reloading AC-LAW-19, BR-LAW-07 RC-116 🟡 Medium 🔵 Pending @TC-LAW-021 A 3★ filter is applied on the Lawyer list page — 1. Apply the 3★ filter. 2. Navigate away to another page, then back to the Lawyer page (and separately, test a page reload). The filter is reset to its default (no filter) in both cases — unlike an orientation change (TC-LAW-018), which preserves it. ⬜ Not Run

8. Regression

TC ID Test Scenario AC Jira Priority Coverage Cucumber Tag Preconditions Test Data High-level Steps Expected Result Status Note
TC-LAW-019 Confirm the Find an Expert page is unaffected — RC-116 🟠 High 🔵 Pending @TC-LAW-019 Both the Lawyer page and the Find an Expert page are deployed — 1. Open the Find an Expert page. 2. Apply its rating filter. 3. Open its scheduling options. The Find an Expert list, rating filter and scheduling options behave exactly as before the Lawyer page change — no shared-component regression. ⬜ Not Run [DEP] Cross-feature — belongs to expert_call_appointment (RC-112); duplicated here as RC-116 regression cover

9. Cross-Feature — Web Portal Data Sync (wp_lawyer → lawyer)

TC ID Test Scenario AC Jira Priority Coverage Cucumber Tag Preconditions Test Data High-level Steps Expected Result Status Note
TC-LAW-022 Lawyer added in the Web Portal is available on the Lawyer Web app AC-LAW-20 / BR-WPLAW-06 — 🔴 Critical 🔵 Pending @TC-LAW-022 Admin has added a new lawyer via the Web Portal (wp_lawyer, TC-WPLAW-001) with valid Full Name, Full address, Rate, and Company name Lawyer: QA Lawyer 99; Rate: 4★; Company: Reiner Holzapfel Karosseriebau-Lackierung 1. In the Web Portal, add the lawyer
2. In the consumer app, open "Unfall Rechtsberatung"
3. Locate the lawyer's entry
The new lawyer appears as a list entry, with name, firm/company, rating, and address matching exactly what the admin entered in the Web Portal ⬜ Not Run Cross-feature with wp_lawyer (feature WPLAW); source AC: feature WPLAW
TC-LAW-023 Lawyer details edited in the Web Portal are reflected on the Lawyer Web app AC-LAW-21 / BR-WPLAW-06 — 🟠 High 🔵 Pending @TC-LAW-023 Admin has edited a lawyer's Full Name, Full address, Rate, and/or Company name via the Web Portal (wp_lawyer, TC-WPLAW-004) and saved Lawyer: Van Lawyer; new Mobile/Rate change per TC-WPLAW-004 1. In the Web Portal, edit the lawyer's details and save
2. In the consumer app, view that lawyer's entry on the Lawyer Web app list
The name, firm, rating, and address shown to the user match the values last saved in the Web Portal — never stale/previous data ⬜ Not Run Cross-feature with wp_lawyer (feature WPLAW)
TC-LAW-024 Lawyer deleted in the Web Portal no longer appears on the Lawyer Web app AC-LAW-22 / BR-WPLAW-06 — 🟠 High 🔵 Pending @TC-LAW-024 Admin has deleted a lawyer via the Web Portal (wp_lawyer, TC-WPLAW-007) and confirmed A disposable test lawyer record present on both Web Portal and Lawyer Web app before deletion 1. In the Web Portal, delete the lawyer and confirm
2. In the consumer app, refresh/open the Lawyer Web app list
The deleted lawyer no longer appears as a list entry ⬜ Not Run Cross-feature with wp_lawyer (feature WPLAW)

Regression Impact (§15)

Impacted area Risk Covered by
Find an Expert page (RC-112) — shares the list + rating-filter + Calendly pattern A shared list/filter component changed for the Lawyer page could alter Find an Expert behaviour TC-LAW-019
"Unfall Rechtsberatung" entry point in the Web App navigation The entry point had to be wired to the reworked page TC-LAW-001
Web App list paging (RC-124, open bug) — lists capping at 20 items Confirmed the Lawyer list uses lazy loading with no cap; if the RC-124 bug's shared paging component regresses, it could still truncate this list TC-LAW-002
Tablet/landscape layout of sibling Web App pages The iPad Pro landscape fix may have touched shared responsive styles ⚠️ Not covered here — flagged for the QA Lead; needs a Web App-wide tablet regression pass
Web Portal — Manage Lawyers (wp_lawyer, RC-107) — shared lawyer data source Add/edit/delete performed in the admin portal must sync correctly to this consumer-facing list; a sync defect here would surface as stale or missing lawyer data TC-LAW-022, TC-LAW-023, TC-LAW-024

Techniques not applied

Technique Why not applicable
§6 Decision Table The only condition driving the outcome is the selected rating; there is no second interacting condition to combine.
§7 Pairwise / all-pairs Two parameters (rating filter × viewport) — too few to need all-pairs reduction; covered directly by TC-LAW-005…009 and TC-LAW-016/017.
§8 State Transition Browsing, filtering and opening an external scheduling page change no entity lifecycle; the booking state lives in Calendly (BR-LAW-04).
§9 Field-level validation The page has no user-input fields — the rating filter is a selection, not free text.
§13 Non-functional (perf / security / a11y / i18n) RC-116 states no performance target, security requirement, or accessibility/localisation scope. Only compatibility is required, and that is covered by TC-LAW-016/017.
§3 Unauthorised access Now covered — confirmed access follows the Admin feature-config mechanism, currently set to login-required. See TC-LAW-020 (AC-LAW-18, BR-LAW-06).

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 / verifying an 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