Skip to content

feat(ui): bevindingen aanmaken via UI op /beheer/bevindingen#81

Merged
Treason8579 merged 1 commit into
mainfrom
feat/findings-create-ui
May 27, 2026
Merged

feat(ui): bevindingen aanmaken via UI op /beheer/bevindingen#81
Treason8579 merged 1 commit into
mainfrom
feat/findings-create-ui

Conversation

@Treason8579

Copy link
Copy Markdown
Collaborator

Wat

Tijdens validatie voor de demo van 28 mei bleek dat /beheer/bevindingen lees-only was — geen create-knop in de UI, terwijl backend (POST /assessments/findings/) al wel werkt. Voor de audit-/QA-rol-stakeholder (Hans Hoekstra) is dit een wezenlijke flow. Deze PR sluit de gap.

Wijzigingen

  • UI: "Nieuwe bevinding" knop + form (assessment-dropdown verplicht, titel, ernst, status, beschrijving)
  • UX: knop is disabled + waarschuwingsbalk als er nog geen assessments zijn (bevinding hangt altijd aan assessment — audit-trail-conventie)
  • api-client: `api.findings.create()` + `api.findings.update()`

Tests

  • +4 vitest in `bevindingen/page.test.tsx`: empty-state, validatie, create-flow met API-spy, ernst-filter
  • +2 e2e in `beheer-bevindingen-create.spec.ts`: UI → API → DB-verificatie via psql

Lokaal: 55/55 vitest pass, typecheck clean, 0 lint-errors.

Test plan

  • vitest lokaal groen (4/4 new)
  • typecheck + lint clean
  • CI groen op deze branch

Voorheen kon je bevindingen alleen via API (`POST /assessments/findings/`)
aanmaken — de UI op /beheer/bevindingen was lees-only met filter. Voor
audit-/QA-rol-stakeholders een wezenlijke gap. Backend werkt al.

Wat erbij komt:
- "Nieuwe bevinding" knop bovenaan /beheer/bevindingen
- Create-form met verplichte velden: assessment (dropdown), titel,
  ernst (laag/midden/hoog/kritiek), status (open/in_behandeling/afgesloten);
  optionele beschrijving
- Knop is disabled + waarschuwing wanneer er nog geen assessments zijn —
  bevinding hangt altijd aan een assessment (audit-trail-conventie)
- Assessment-dropdown toont "type · domein · datum" zodat reviewers
  snel het juiste assessment kiezen

api-client
- `api.findings.create(data)` + `api.findings.update(id, data)` toegevoegd

Tests
- 4 nieuwe vitest-tests in `bevindingen/page.test.tsx`:
  empty-state, validatie verplichte velden, create-flow met API-spy,
  ernst-filter werkt
- 2 e2e-tests in `beheer-bevindingen-create.spec.ts`: UI → API → DB
  verificatie via psql; validatie zonder verplichte velden

Lokaal: 55/55 vitest pass (was 51), typecheck clean, 0 lint-errors.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Treason8579 Treason8579 merged commit 8c2a3ef into main May 27, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant