Tests
tilttek/progressionLes tests de la bibliothèque
composer install
vendor/bin/phpunit --no-configuration tests
La suite couvre les courbes et leurs refus ; les règles, les plafonds et les périodes à travers les fuseaux horaires ;
les saisons ; les pistes à partir d'une configuration ; les séries (grâce, unités gelées, trous, gestes en avance sur le
moment présent) ; le gardien et son balayage dans les fuseaux horaires des membres ; les magasins en mémoire par
ExperienceStoreTestCase, MilestoneStoreTestCase et StreakStoreTestCase, les contrats que tout magasin respecte ;
la projection avec le journal de tilttek/activity (niveaux, jalons, plafonds, objets, saisons, annulations et
reconstructions) ; et Progression. Dans le monodépôt, Infection maintient la bibliothèque à 100 % des mutants
couverts.
Tester du code qui lit la progression
Construisez les magasins en mémoire, un Journal sur un InMemoryActivityLog avec LiveProjections autour d'une
ProgressionProjection, et une horloge que vous contrôlez ; enregistrez des activités, puis lisez :
$journal->record(Activity::of('game:1:member:1', 'member:1', 'game.played', new DateTimeImmutable('2026-11-07 20:00')));
self::assertSame(1, $progression->streak($member, 'daily-play')->current);
Un observateur qui note ce qu'on lui annonce vérifie les montées de niveau, les jalons et les séries brisées.