# WP1 — Tag + describe the E2E specs (grouping foundation)

## Goal
Make each Playwright scenario groupable + selectively runnable by adding tags to its test title, plus a short human description, so WP2 (--grep filter) and WP4 (module groups + drill-down) have data to work with.

## Repo & branch
FE repo `/home/moonui/public_html/moon-erp`, branch `hazemdev`. Commit `test(e2e):`.

## Files to MODIFY
- `e2e/specs/lis-request-flow.spec.ts` — title currently `'LIS: login -> create patient -> create request -> appears in lists'`. Add Playwright tags: append `@lis @smoke` to the title (Playwright convention: tags are `@word` tokens IN the title, and `--grep "@lis"` matches them). Keep the readable prose. Add a description annotation via `test('... @lis @smoke', { annotation: { type: 'description', description: 'Logs in, creates a patient and a lab request via API, and asserts both appear in the /lab UI lists.' } }, async ({ page }) => {...})` — Playwright supports the 2nd-arg `{ annotation }` (or `test.info().annotations`). Whichever form this Playwright version (1.61) supports cleanly; if the object-arg form is awkward, add `test.info().annotations.push({ type:'description', description:'...' })` as the first line inside the test.
- `e2e/specs/lis-result-review-flow.spec.ts` — title `'LIS: enter result (UI) -> validate -> approve -> release (UI four-eyes) -> preview (UI)'`. Add tags `@lis @results`. Add a description annotation: 'Full ISO-15189 four-eyes result cycle driven through the real UI: enter → validate → approve → release → preview.' The spec already has rich `test.step('...')` calls — leave them (WP1c/WP4 surface them; the JSON reporter records steps under each test's `steps`).

## Interfaces exposed
- Tags in titles → `--grep "@lis"` (group run) or `--grep "<exact title>"` (single) works (WP2).
- The `@<tag>` tokens + description annotation + `test.step` titles are what WP4 parses (group = first module tag like `lis`; description = the annotation; steps = the reporter's per-test `steps[]`).

## Acceptance criteria
- [ ] Both specs still PASS: `npx playwright test --config e2e/playwright.config.ts` green (run it).
- [ ] `npx playwright test --config e2e/playwright.config.ts --grep "@lis" --list` lists both; `--grep "@results" --list` lists only the second.
- [ ] The JSON reporter output (`e2e/results/last-run.json`) contains the tags in the title and the description annotation (check the shape so WP4 knows where to read them).
- [ ] `ng build` unaffected (e2e/ is outside the Angular build).

## Out of scope
BE runner (WP2), FE screen (WP4). Do NOT add new scenarios. Do NOT touch product code.

## Flags
No [FIN], no migration.
