refactor: polygonTypes-register — generiek buildPolygonLayer + setHighlightPolygon #67
Labels
No labels
blocked
bug
design
documentation
duplicate
enhancement
future
good first issue
help wanted
invalid
question
refactoring
tracker
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jelmer/topoquiz#67
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Probleem
buildProvinceLayer(),buildWaterLayer(),buildCountryLayer()zijn 3× copy-paste. Idem voorsetHighlightProvince(),setHighlightWater(),setHighlightCountry(). Elk nieuw quizType vereist opnieuw ~40 regels vrijwel identieke code.Tevens is de layer-cleanup in
initLevel()fragiel: 3 hardgecodeerde if-blokken die handmatig elke layer verwijderen. En mastered-styling staat op 4 plekken (recordCorrect,initStreak,restoreProgress,buildXLayer).Oplossing
Eén
polygonTypes-register met configuratie per quizType:Één generieke
buildPolygonLayer(type)ensetHighlightPolygon(type, item)vervangt de 3 dubbele functies.Layer-cleanup in
initLevel():Één
applyMasteredStyle(name)die zowel markers als polygonen afdekt:Impact
Risico
Laag. Alle bestaande Playwright E2E tests en unit tests zijn de regressiecheck.
Aanpak
Feature branch
refactor/polygon-types-register. Tests eerst: schrijf falende unit tests voorbuildPolygonLayer('province'),setHighlightPolygon('country', item)voordat je de implementatie omgooit.Zie REFACTORING.md voorstellen #1, #2, #3
Geïmplementeerd: polygonTypes-register + clearPolygonLayers + applyMasteredStyle. Refactor #70 (vraagstekst-mapping) meegenomen. 296 unit tests + 43 E2E groen.