Ga naar inhoud

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 = 1 behouden hun wv-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 E-mail 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-testaccounts draai op dev, dan bestaan daarna gb-test-abonnee (rollen subscriber + wv-subscriber) en gb-test-geenabo (subscriber) met het wachtwoord uit GB_TEST_ACCOUNT_PASSWORD.
  • Als beheerder de seeder nogmaals draai, dan ontstaan geen duplicaten (idempotent).
  • Als beheerder de seeder zonder GB_TEST_ACCOUNT_PASSWORD draai, dan stopt hij met een foutmelding en wordt niets aangemaakt.
  • Als beheerder een WP All Import-abonneerun uitvoer, dan behoudt gb-test-abonnee de rol wv-subscriber.
  • Als beheerder wp gb seed-testaccounts --verwijder draai, dan zijn alle accounts met meta _gb_seeded_test_account verwijderd.
  • Als beheerder de seeder op production zonder --force draai, dan weigert hij.
  • Als tester met gb-test-abonnee inlog op de site, dan word ik doorgestuurd naar /uitgaven/; met gb-test-geenabo naar /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).