Tests voor de vraaggeneratoren + opslagcontrole op alle platforms #8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "tests-en-opslagcheck"
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?
Tests
De app had 6.497 regels JS en geen enkele test. Er is nu een harnas dat de scripts in dezelfde volgorde als
index.htmlin één gedeelde context laadt - de app gebruikt bewust geen modules, dusrequire()werkt er niet op. Zo worden de echte generatoren getest en niet een nagebouwde kopie. De laadvolgorde wordt uitindex.htmlzelf gelezen, dus een nieuw vak doet automatisch mee zonder dat er een lijst bijgewerkt hoeft te worden.10 tests, gericht op fouten die een kind direct raken maar die je bij handmatig klikken zelden tegenkomt:
vraagVoorVak()valt stil terug opvormen: je kiest Topografie en krijgt vormvragenDe randgevallen van
getalOpties()zitten er ook in, inclusief een generator die niets bruikbaars oplevert - die geeft na 300 pogingen op, en dan mag er geen lege lijst uitkomen.Draait via
.forgejo/workflows/test.yamlop elke push en PR, in seconden klaar. Bewust apart vanandroid.yamlenios.yaml: je ziet een kapotte generator meteen in plaats van pas na een volledige app-build.Opslagcontrole
bewaarProfielen()slikt zijn fout stil op (catch(e){}) - en terecht, een crash midden in het spel is erger. Maar daardoor kan een kind een uur spelen en al zijn sterren verliezen zonder enige waarschuwing.De bestaande zelftest zit in
GameViewController.swiften draait dus alleen op iOS.helpers.jsdoet die controle nu op elk platform (web, Android, iOS) en logtSTARTRAILS_SELFTEST STORAGE_OKofSTORAGE_ERROR- hetzelfde formaat dat de simulator-stap inios.yamlal uitleest, dus die blijft gewoon werken.Geverifieerd
file://-origin): in beide gevallen wordt de juiste regel gelogd en blijft het spel draaienNiet gewijzigd
Geen spellogica, geen UI, geen vakinhoud. Alleen tests, een workflow en de zelftest-regel in
helpers.js.Tests ----- De app had 6.497 regels JS en geen enkele test. Er is nu een harnas dat de scripts in dezelfde volgorde als index.html in een gedeelde context laadt (de app gebruikt bewust geen modules), zodat de echte generatoren getest worden en niet een nagebouwde kopie. De laadvolgorde wordt uit index.html zelf gelezen, dus een nieuw vak doet automatisch mee. 10 tests, die de fouten vangen die een kind direct raken maar die je bij handmatig klikken zelden tegenkomt: - het juiste antwoord ontbreekt tussen de opties (kind kan alleen fout klikken) - twee opties zijn identiek - lege vraagtekst - een vak zonder generator (vraagVoorVak() valt dan stil terug op 'vormen': je kiest Topografie en krijgt vormvragen) - alle 19 vakken x elke groep x alle drie de talen Opslagcontrole -------------- bewaarProfielen() slikt zijn fout stil op (catch(e){}), en terecht - een crash midden in het spel is erger. Maar daardoor zou een kind een uur kunnen spelen en al zijn sterren verliezen zonder enige waarschuwing. De bestaande zelftest zat alleen in GameViewController.swift en draait dus alleen op iOS. helpers.js doet die controle nu op elk platform (web, Android, iOS) en logt STARTRAILS_SELFTEST STORAGE_OK of STORAGE_ERROR - hetzelfde formaat dat de simulator-stap in ios.yaml al uitleest. Geverifieerd in een echte browser met werkende en met geblokkeerde opslag: in beide gevallen wordt de juiste regel gelogd en blijft het spel draaien.