Tech-infra: phases, country quizType, bounds, groepen voor Geobas 7 & 8 #60
Labels
No labels
blocked
bug
design
documentation
duplicate
enhancement
future
good first issue
help wanted
invalid
question
refactoring
tracker
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jelmer/topoquiz#60
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?
Doel
Bouw de infrastructurele uitbreidingen die nodig zijn om het gameplay-design uit #58 mogelijk te maken. Niet-destructief: bestaande sets blijven bit-voor-bit werken.
Blocked by: #59 (regressie-baseline moet eerst af)
Design reference: #58
Validates with: Baltische staten pilot issue (volgt)
Architectuur-strategie — regressiepreventie
Alle wijzigingen zijn additief en opt-in. Bestaande sets missen de nieuwe velden en vallen automatisch terug op huidig gedrag.
Principes
Gedeelde code — mitigatie per wijziging
Uit te rollen in kleine testbare stappen
Elke stap op feature-branch `feature/geobas-7-8-infra`. Elke stap eindigt met groene #59 + alle bestaande tests.
Stap 1 — Groep-selectielaag (#39)
Stap 2 — Optionele `bounds` + klik-drempels
Stap 3 — `country` quizType
Stap 4 — Phases-mechaniek
Stap 5 — Unit tests voor nieuwe utilities
Data-pipelines
Uit scope voor deze story
Files die wijzigen
Acceptatiecriteria
Gerelateerd
Branch-strategie: dit werk gaat op een feature branch (bijv.
feature/geobas-7-8-infra) i.p.v. direct opdev, zodat het via Cloudflare Pages preview deploys op het web getest kan worden voordat het naardev/staginggaat.TDD-correctie op de uitrolvolgorde:
We werken strict red-green-refactor. Elke stap begint met het schrijven van falende tests die het gewenste gedrag vastleggen — pas daarna implementatiecode. De stappen zijn:
expect(groupButtons).toHaveCount(4), navigatie naar groep 7), dan pas UIbounds+clickCorrectKm: eerst falende unit tests voorclickResult(80, 70) === 'correct'vs.clickResult(80, 61) === 'close', dan pas logicacountryquizType: eerst falende tests voorloadLevel+ country-polygoon op kaart, dan GeoJSON + renderingphases: eerst falende unit tests voorbuildPool(set, phaseId), fase-transitie,sessionStorage-voortgang, dan pasrenderQuestion/loadLeveltests/baltische-staten.spec.jsvolledig uitschrijven (rood), dan pas data + set 70Nooit implementatie vóór de test.
Geïmplementeerd in feature/geobas-phases, gemerged naar dev. Pilot (Baltische staten, set 70) goedgekeurd door user.