# MP-08 SP-A — Sandbox dogfood parity matrix

A `dynamo-ngx-sandbox` jelenleg **54 hand-rolled e2e tesztet** futtat a
Forms v2 wave-1B + wave-2a field-ekre (`dynamo-ngx/e2e/tests/forms-v2/*.spec.ts`).
Ez a doku méri fel, hogy a `dynamo-e2e` generated suite **paritást ad-e**.

## Hand-rolled vs. generated coverage

| Sandbox route | Hand-rolled tesztek (jelenlegi) | Generated tesztek (Wave-1) | Δ |
|---|---|---|---|
| `/c/text-field-new` | a `form-new.spec.ts` keretében (label/keyboard/validators) | 16 (text matrix) | parity+ |
| `/c/password-field-new` | 12 (`password-field.spec.ts`) | 9 (password matrix) + 3 form-level | -3 (a reveal-toggle interakció hiányzik a generator-ban) |
| `/c/slider-field-new` | 4 (`wave-2a-fields.spec.ts`) | 3 (slider matrix) | -1 (drag-with-keyboard) |
| `/c/slider-range-field-new` | 4 | 3 (sliderRange matrix) + 3 form-level | parity |
| `/c/radio-select-field-new` | 4 | 5 (radio matrix) | +1 |
| `/c/datetime-field-new` | 3 | 4 (datetime matrix) | +1 |
| `/c/date-range-field-new` | 6 | 3 (dateRange matrix) | -3 (allowSameDay-edge a custom-case-be kell tenni) |
| **TOTAL** | **~54** | **~62 (per-field) + 21 (form-level)** | **+30** |

## Hiányzó capability-k a generator-ban (Wave-2 TODO)

1. **Reveal-toggle interaction** (password) — a `password-field-new` 👁
   button click-flow-ja nincs a curated mátrixban. Wave-2 SP-2 javaslat:
   `DyE2E_FieldTestCase_Type.revealToggle` enum-érték + dedikált
   password-emission-ág.

2. **Drag-with-keyboard** (slider) — `ArrowLeft` / `ArrowRight` / `Home` /
   `End` press-sequencé a sliderben. Wave-2 SP-3: `keyboardOnly`
   test-case-type emission generic-keyboardarrow flow-val.

3. **allowSameDay edge** (dateRange) — `settings.allowSameDay === false`
   esetén a `startEqualsEnd` case `valid` → `invalid` flip-eli a
   shape-eljárás. A `DyE2E_TestCaseFilter_Util.filter()` jelenleg NEM
   nézi az `allowSameDay` settings-flag-et. Wave-2 SP-1.

4. **Label / keyboard / focus-trap** (text) — a `form-new.spec.ts`
   keretes-tesztjei a label-render-t és focus-flow-t ellenőrzik. Ez
   form-level orchestrator extension, NEM per-field — generator-szinten
   új form-level emit-szignatúra kell.

## Replacement stratégia (Wave-1.5)

- **Side-by-side**: hand-rolled + generated egyaránt megmarad, a
  Playwright projekt mind a kettőt futtatja. A generated suite
  igazolásra: 0 regresszió.
- **Drop-in (Wave-2)**: a Wave-2 hiányzó capability-k pótlása után
  a hand-rolled suite tönkre-mehet, kivéve a 4-féle "nem-mappázott"
  edge-case-t (lásd fent), amelyek custom-override-ban élnek tovább.

## Generated specs lokálisan

```bash
node dogfood/sandbox-bootstrap.js
ls dogfood/generated/
# → text-field-new.spec.ts password-field-new.spec.ts slider-field-new.spec.ts
#   radio-select-field-new.spec.ts date-range-field-new.spec.ts
```

A generated spec-ek **deterministicak** (lásd a `STAMP_BUILT_AT` const-ot a
generator-ban) — a bootstrap script azonos input-ra azonos output-ot ad.

## Következő lépés (MP-08 SP-C..F)

- SP-C — minden Forms v2 sandbox route generated suite-eljárás
- SP-D — `dynamo-ngx/e2e/tests/forms-v2/` mellé bekötés side-by-side mód
- SP-E — Hand-rolled törlés Wave-2 lezárása után
- SP-F — Sandbox CICD pipeline-update (`coverage` step a generated suite-ra is)
