M1: CRUD-Slice 'Mahlzeit' Schritt 2 – UI (Controller, Templates, Routen, Feature-Tests)

This commit is contained in:
2026-09-19 10:17:55 +02:00
parent 1589088379
commit 160b89f5a1
11 changed files with 536 additions and 9 deletions
+1 -1
View File
@@ -391,7 +391,7 @@ tests/
│ ├── Essen/UseCase/MahlzeitCreateUseCaseTest.php
│ ├── Essen/Query/InspirationQueryTest.php // mit gemocktem Provider
│ └── Essen/Mapping/MahlzeitFactoryTest.php
├── Integration/Data/ // Test-Env + SQLite (oder in-memory)
├── Integration/Data/ // Test-Env + file-basierte SQLite (var/test.db)
│ ├── Essen/MahlzeitProviderTest.php
│ ├── Essen/MahlzeitProcessorTest.php
│ └── Essen/MahlzeitMapperTest.php
+3 -3
View File
@@ -38,7 +38,7 @@ Status: **final** (2026-09-13, abgestimmt) · Basis: [`anforderungen.md`](anford
`MahlzeitManager`, `Mahlzeit{Create,Update,Delete}UseCase`, `MahlzeitListQuery`,
`MahlzeitNotFoundException` (→404), Events; `src/Data/Essen` – `MahlzeitEntity`
(Tabelle `essens_mahlzeiten`, wochentage als CSV), `MahlzeitMapper/Provider/Processor`, Migration.
Tests: UseCase/Model-Unit + Provider/Processor-Integration (in-mem SQLite).
Tests: UseCase/Model-Unit (Pure PHP, Fakes) + Provider/Processor-Integration (file-basierte SQLite, `var/test.db`).
**DoD 1:** `composer test` grün, CRUD vollständig über Logic-API testbar.
- **Schritt 2 (UI):** `MahlzeitController` + `templates/mahlzeiten/` + Routen `/mahlzeiten[/{id}]`
(POST/Redirect/Flash, Wochentage als Checkboxes) + Controller-Feature-Test (eingeloggte Session).
@@ -69,8 +69,8 @@ Status: **final** (2026-09-13, abgestimmt) · Basis: [`anforderungen.md`](anford
## Test-Strategie (quer)
- PHPUnit je Milestone: UseCase-Unit (in-mem SQLite, Logic-Dependencies als
Fakes) + Feature-Tests (HTTP gegen Test-DB)
- PHPUnit je Milestone: UseCase/Model-Unit (Pure PHP, Logic-Dependencies als
Fakes) + Integration-/Feature-Tests (HTTP/DB gegen file-basierte Test-DB `var/test.db`)
- Manuell: `docker compose run app composer test` bzw. `vendor/bin/phpunit`
- Kein CI (bewusst, s. Prinzipien)