Aller au contenu

Tests

tilttek/writing-goals

Les tests de la bibliothèque

composer install
vendor/bin/phpunit --no-configuration tests

La suite couvre les jours et leurs jours de la semaine de part et d'autre de 1970, le jour d'aujourd'hui de l'auteur dans son fuseau horaire, les objectifs et leurs refus, les quatre courbes, les jours d'écriture et les dates mises de côté, les plans — premier jour, jours manqués, jours d'avance, compte du jour, arrondi dont la somme tombe juste, jours de poids 0, jours sans écriture, avant le début, objectif atteint, échéance dépassée —, la consignation, le retrait et la correction des comptes, l'objectif atteint annoncé une fois, l'effacement, et les magasins en mémoire par GoalStoreTestCase et LogStoreTestCase, les contrats que réussit tout magasin. tests/Benchmark/PlannerBench.php mesure un plan d'un mois et un de dix ans. Dans le monodépôt, Infection maintient la bibliothèque à 100 % des mutants couverts.

Tester du code qui consigne des comptes

Construisez WritingGoals avec les magasins en mémoire, une horloge que vous déplacez — Symfony\Component\Clock\MockClock — et un répartiteur qui note ses événements :

$clock = new MockClock('2026-11-03 03:30:00', 'UTC');
$goals = new WritingGoals(new InMemoryGoalStore(), new InMemoryLogStore(), $clock, $dispatcher);
$goals->save($goal);

self::assertSame('2026-11-02', $goals->plan($goal->id)->today->toString()); // in America/Montreal

Pour tester un plan seul, appelez Planner::plan() avec un Progress::fromArray() et le jour de votre choix.