Testaccounts¶
Doel¶
Reproduceerbare accounts per rol, zodat de Playwright-acceptatietests van de
rebuild elk rolgedrag kunnen doorlopen zonder echte gebruikersgegevens aan te
raken. De accounts worden aangemaakt met de WP-CLI-seeder uit de mu-plugin
gb-app-auth.
Seeder: wp gb seed-testaccounts¶
wp gb seed-testaccounts # idempotent aanmaken/bijwerken
wp gb seed-testaccounts --verwijder # verwijdert alle geseede accounts
wp gb seed-testaccounts --force # verplicht op production, anders geweigerd
- Het wachtwoord komt uit de omgevingsvariabele
GB_TEST_ACCOUNT_PASSWORD(beheerd in Infisical); ontbreekt die, dan stopt de seeder met een fout. - Geseede accounts zijn herkenbaar aan usermeta
_gb_seeded_test_account = 1. - Accounts met meta
_gb_seeded_wv_subscriber = 1behouden hunwv-subscriber-rol na een WP All Import-abonneerun (de import trekt die rol normaal in bij iedereen die niet in het bestand zit). - De accountlijst is uitbreidbaar via filter
gb_app_seed_accounts.
Waar draait de seeder
De seeder zit in de mu-plugin en werkt dus alleen op omgevingen met Bedrock-structuur (dev/staging/prod), niet in de lokale legacy-Docker-omgeving. Draai hem via SSH/WP-CLI in de Coolify-container.
Huidige geseede accounts¶
| Login | Rol(len) | Dekt scenario | |
|---|---|---|---|
gb-test-abonnee |
joost+gb-test-abonnee@vanschiesoftware.nl | subscriber + wv-subscriber |
digitale abonnee (uitgaven, paywall open, app is_subscriber: true) |
gb-test-geenabo |
joost+gb-test-geenabo@vanschiesoftware.nl | subscriber |
ingelogd zonder abonnement (403 op uitgaven, paywall dicht) |
Benodigde uitbreiding voor de rebuild-tests¶
Voor de volledige rolmatrix (zie overzicht) zijn vijf testpersona's nodig. De seeder moet daarvoor worden uitgebreid met een pastor- en een gb-admin-account:
| Persona | Voorstel login | Rol(len) | Te testen gedrag |
|---|---|---|---|
| WV-abonnee | gb-test-abonnee (bestaat) |
subscriber + wv-subscriber |
login-redirect naar /uitgaven/, uitgavenarchief + flipbook, paywall open, gb_locked: false, pdf-link |
| Geen abonnement | gb-test-geenabo (bestaat) |
subscriber |
beperkte dropdown (alleen wachtwoord/uitloggen), 403 op /uitgaven/*, paywall dicht, gb_locked: true |
| Subscriber | gb-test-geenabo (zelfde persona) |
subscriber |
/account/ bereikbaar via directe URL, formulier 18/25 |
| Predikant | gb-test-pastor (nieuw) |
pastor |
/predikant-gegevens/ + opt-out, verwijzing op /account/, 403 op /uitgaven/*, vermelding op de publieke predikantenlijst |
| GB-beheerder | gb-test-gbadmin (nieuw) |
gb-admin |
admin bar zichtbaar, nieuwsbrief-preview, 403 op /uitgaven/* en /predikant-gegevens/ (geen impliciete toegang) |
Nog niet gerealiseerd
gb-test-pastor en gb-test-gbadmin bestaan nog niet in de seeder
(die kent nu alleen de twee accounts hierboven). Uitbreiden vóór het
schrijven van de Playwright-suite. Aandachtspunt bij het pastor-account:
een geseede pastor verschijnt op de publieke predikantenlijst — geef
het account herkenbare niet-echte gegevens (bv. functie "Maak een keuze"
laten staan en geen adres invullen) of zorg dat de testomgeving niet
publiek geïndexeerd wordt.
Gedrag & regels¶
- Testaccounts nooit met de hand aanmaken op prod; altijd via de seeder
(idempotent, herkenbaar, opruimbaar met
--verwijder). - Op production weigert de seeder zonder
--force. - Gebruik in testscripts uitsluitend deze accounts; nooit echte abonnee-/predikantaccounts.
Acceptatiecriteria¶
- Als beheerder
wp gb seed-testaccountsdraai op dev, dan bestaan daarnagb-test-abonnee(rollen subscriber + wv-subscriber) engb-test-geenabo(subscriber) met het wachtwoord uitGB_TEST_ACCOUNT_PASSWORD. - Als beheerder de seeder nogmaals draai, dan ontstaan geen duplicaten (idempotent).
- Als beheerder de seeder zonder
GB_TEST_ACCOUNT_PASSWORDdraai, dan stopt hij met een foutmelding en wordt niets aangemaakt. - Als beheerder een WP All Import-abonneerun uitvoer, dan behoudt
gb-test-abonneede rolwv-subscriber. - Als beheerder
wp gb seed-testaccounts --verwijderdraai, dan zijn alle accounts met meta_gb_seeded_test_accountverwijderd. - Als beheerder de seeder op production zonder
--forcedraai, dan weigert hij. - Als tester met
gb-test-abonneeinlog op de site, dan word ik doorgestuurd naar/uitgaven/; metgb-test-geenabonaar/account/.
Bekende afwijkingen¶
Note
Geen defecten. Wel een documentatie-valkuil: de test-account-ID's die in projectnotities circuleren gelden voor de develop-database; in een productiekopie bestaan de geseede accounts niet (daar eerst de seeder draaien).