Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(BSR)[PRO] fix: unit tests on master #5945

Merged
merged 1 commit into from Apr 3, 2023
Merged

Conversation

AlbericTrancart
Copy link
Contributor

@AlbericTrancart AlbericTrancart commented Apr 3, 2023

Bug intéressant :

Cause

Le test set une date au 25 du mois avec une heure UTC précise (22h59) et expect que le call backend est fait à la même date+heure toISOString
Hors en interne le upsert stocks serialize les stocks en mettant l'heure à la fin du jour dans le département en question (23h59 avec l'heure de Paris dans le cas du test) et reconvertit en UTC
Là on est dans un cas où le test case a été construit pour correspondre au code, mais du coup ça ne marche que quand il n'y a qu'une heure de décalage entre UTC et la timezone de Paris.
Le changement d'heure a eu lieu au 26 mars, à partir duquel le temps UTC est décalé de 2h du temps de Paris
Jusqu'au 31 mars tout allait bien vu qu'on set la date au 25 du mois et que le changement d'heure est le 26
Au 1er avril, le 25 avril a 2h de décalage avec UTC et ça casse
Ce test case ayant été codé il y a 4 mois il n'a jamais été en heure d'été donc il n'échoue que maintenant

Résolution :

La façon correcte d'écrire le test serait de mocker la date avec Jest, par exemple avec jest.useFakeTimers().setSystemTime(new Date('2020-02-03'))
Cependant, il y a une issue dans Jest 27 qui timeout le test quand on utilise cette fonction :
nock/nock#2200
jestjs/jest#10221
Il ne m'est pas possible de mettre à jour vers Jest 29 car le package Jest est inclus dans Create React App (dépendance react-scripts) et l'installer à la mano demande bcp de reconfiguration (notamment babel)
=> pour l'instant je fais l'assert avec la fonction utilisée dans l'implem

Copy link
Contributor

@antoinemrn antoinemrn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Top et merci pour l'explication !

@AlbericTrancart AlbericTrancart merged commit 569695b into master Apr 3, 2023
5 checks passed
@AlbericTrancart AlbericTrancart deleted the fix-master-tests branch April 3, 2023 09:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants