Tests
tilttek/pointsLes tests de la bibliothèque
composer install
vendor/bin/phpunit --no-configuration tests
La suite couvre chaque valeur et ses refus, le registre en mémoire par LedgerTestCase (le contrat que tout registre
respecte), Points, les lots et l'expiration, les règles et leurs périodes à travers les fuseaux horaires, et la
projection avec le journal de tilttek/activity : plafonds, annulations et reconstructions. Dans le monodépôt,
Infection maintient la bibliothèque à 100 % des mutants couverts.
Tester du code qui déplace des points
Construisez Points sur un InMemoryLedger avec une horloge que vous contrôlez, appelez le code testé, puis lisez le
solde :
$points = new Points(new InMemoryLedger(), new MockClock('2026-11-07 12:00:00'), new Currencies(new Currency('points')));
$checkout = new RedeemAtCheckout($points);
$checkout($order);
$checkout($order); // a handler run twice
self::assertSame(20, $points->balance($member));
Les règles de gain se testent par le journal : enregistrez des activités dans un Journal sur un
InMemoryActivityLog avec LiveProjections autour d'une PointsProjection, puis lisez les soldes.