test(golden): een golden voor elk van de 24 slidetypes (#617) #696

Merged
brenno merged 1 commit from test/goldens-alle-slidetypes-617 into main 2026-07-22 21:47:22 +00:00
Owner

Sluit #617.

De lus loopt over SlideType.values, met dezelfde fixture die markdown_round_trip_test.dart en sinds #615 ook slide_rasterizer_test.dart gebruiken. Eén lijst, want twee lijsten lopen uiteen — en dan dekt de ene een type dat de andere overslaat, wat precies de vorm van deze bug is.

Belangrijker dan de zestien PNG's die erbij komen: een nieuw slidetype krijgt zijn golden nu zonder dat iemand eraan hoeft te denken. Dat was het echte gat — de acht die er waren, waren de acht van de eerste ronde.

De negen bestaande tests blijven staan. Die dragen rijkere inhoud dan een standaardfixture kan (een TLP-markering met watermerk, een ontbrekende afbeelding), en dat is juist wat een golden waardevol maakt. De lus is de ondergrens, niet de vervanging.

Twee dingen die ik bewust niet heb gedaan

De goldens blijven buiten make check. Je noemt de uitsluiting als onderdeel van het probleem, en ik snap waarom, maar een pixelvergelijking in de dagelijkse poort faalt op elke machine behalve deze — dan is de poort niet strenger geworden maar onbruikbaar voor een tweede ontwikkelaar. CHECKS.md beschrijft al de route die dit wél oplost: een single-platform CI-job zodra er een runner is. Dat hangt aan #592.

CHECKS.md is rechtgezet. Er stond "each slide type" terwijl het er acht waren. Dat staat er nu met de twee kanttekeningen die erbij horen: de uitsluiting is opzet, en de goldens zijn alleen zo goed als iemand die make test-golden typt.

Poort

make check groen (niet door tail gepijpt). make test-golden groen: 33 tests, waarvan 24 nieuw gegenereerd met UPDATE=1 en daarna opnieuw vergeleken zónder die vlag — anders toets je alleen dat je eigen uitvoer aan zichzelf gelijk is.

Sluit #617. De lus loopt over `SlideType.values`, met dezelfde fixture die `markdown_round_trip_test.dart` en sinds #615 ook `slide_rasterizer_test.dart` gebruiken. Eén lijst, want twee lijsten lopen uiteen — en dan dekt de ene een type dat de andere overslaat, wat precies de vorm van deze bug is. **Belangrijker dan de zestien PNG's die erbij komen:** een nieuw slidetype krijgt zijn golden nu zonder dat iemand eraan hoeft te denken. Dat was het echte gat — de acht die er waren, waren de acht van de eerste ronde. **De negen bestaande tests blijven staan.** Die dragen rijkere inhoud dan een standaardfixture kan (een TLP-markering met watermerk, een ontbrekende afbeelding), en dat is juist wat een golden waardevol maakt. De lus is de ondergrens, niet de vervanging. ## Twee dingen die ik bewust niet heb gedaan **De goldens blijven buiten `make check`.** Je noemt de uitsluiting als onderdeel van het probleem, en ik snap waarom, maar een pixelvergelijking in de dagelijkse poort faalt op elke machine behalve deze — dan is de poort niet strenger geworden maar onbruikbaar voor een tweede ontwikkelaar. `CHECKS.md` beschrijft al de route die dit wél oplost: een single-platform CI-job zodra er een runner is. Dat hangt aan #592. **CHECKS.md is rechtgezet.** Er stond "each slide type" terwijl het er acht waren. Dat staat er nu met de twee kanttekeningen die erbij horen: de uitsluiting is opzet, en de goldens zijn alleen zo goed als iemand die `make test-golden` typt. ## Poort `make check` groen (niet door `tail` gepijpt). `make test-golden` groen: 33 tests, waarvan 24 nieuw gegenereerd met `UPDATE=1` en daarna opnieuw vergeleken zónder die vlag — anders toets je alleen dat je eigen uitvoer aan zichzelf gelijk is.
test(golden): een golden voor elk van de 24 slidetypes (#617)
Some checks failed
CI / Gate (Linux) · Format · Analyze · Coverage (pull_request) Failing after 23s
CI / Web hardening (pull_request) Failing after 23s
CI / Docs links (pull_request) Failing after 22s
CI / Supply-chain (Trivy · advisory) (pull_request) Failing after 23s
CI / Gate (Linux) · Format · Analyze · Coverage (push) Failing after 23s
CI / Web hardening (push) Failing after 24s
CI / Docs links (push) Failing after 25s
CI / Supply-chain (Trivy · advisory) (push) Failing after 24s
CI / Test (macos-latest) (pull_request) Has been cancelled
CI / Test (windows-latest) (pull_request) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
7e312ab510
De negen bestaande tests dekten er acht. Elk type dat ná de eerste ronde
gebouwd is — chart, cockpit, timeline, scorecard, finding, checklist,
scopeMatrix, discoveries, findingsSummary, question — had géén visuele
regressietest, dus een themawijziging of een aanpassing in
`SlidePreviewWidget` kon hun layout verschuiven zonder dat er iets rood
werd. De blanco scorecard uit #583 was precies zo'n geval; een golden had
hem gevangen.

De lus loopt over `SlideType.values` met dezelfde fixture die de
markdown-ronde-trip en de rasterizer gebruiken — één lijst, want twee
lijsten lopen uiteen. Belangrijker nog dan de 16 die erbij komen: een
nieuw slidetype krijgt zijn golden voortaan zonder dat iemand eraan hoeft
te denken.

De negen bestaande blijven staan. Die dragen rijkere inhoud dan een
standaardfixture kan — een TLP-markering met watermerk, een ontbrekende
afbeelding — en dat is precies wat een golden waardevol maakt.

CHECKS.md beweerde "each slide type" terwijl het er acht waren. Dat staat
nu recht, mét de twee dingen die daarbij hóren: ze blijven bewust buiten
`make check` (een pixelvergelijking in de dagelijkse poort faalt op elke
machine behalve deze), en ze zijn alleen zo goed als iemand die
`make test-golden` typt.

Sluit #617.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit 3288246146 into main 2026-07-22 21:47:22 +00:00
Sign in to join this conversation.
No description provided.