fix(tests) : fiabilise la suite PHPUnit contre la derive d'horloge (ERP-98) #47
Reference in New Issue
Block a user
Delete Branch "fix/ERP-98-flaky-phpunit-clock"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Probleme (ERP-98)
Suite PHPUnit flaky ~1 run sur 2 -> hook pre-commit qui plante, recours au
--no-verifysur des commits sains.Cause racine
Une seule cause commune : l'horloge
CLOCK_REALTIMEdu conteneur n'est pas monotone sous WSL2/Docker (saut arriere sous charge), alors que le code et les tests supposaient une horloge stable.iat/nbf/expavecclock_skew: 0(LooseValidAt(.., PT0S)cote lcobucci). Un recul d'horloge apres/login_checkrend le token « dans le futur » -> rejet.1780402904 > 1780402904) : colonnesTIMESTAMP(0)+sleep(1)reel. L'ecart floor-seconde n'est nul que si l'horloge recule.Correctifs
config/packages/lexik_jwt_authentication.yamlclock_skew: 15-> tolere la derive (benefice prod aussi)TimestampableBlamableSubscriberClockInterface(prod inchange via NativeClock)CategoryTimestampableBlamableTestClockSensitiveTrait+ MockClock fige/avance, suppression dessleep(1)TimestampableBlamableSubscriberTestSubtilite :
mockTime()cree un MockClock en UTC ; les colonnesTIMESTAMP WITHOUT TIME ZONEround-trippent via le fuseau PHP (Europe/Paris) -> decalage 2h. Le mock est seede dans le fuseau par defaut (comme le NativeClock prod).Verifications
make test: 464 tests verts, 0 echec / 0 erreurmake php-cs-fixer-allow-risky: 0 fichier a corrigerPas de migration, pas de changement front, RBAC intact.