-
Notifications
You must be signed in to change notification settings - Fork 57
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
[BUGFIX] Le InMemoryTemporaryStorage ne suit pas la TemporaryStorage API et est utilisé à tort dans les tests d'intégration (PIX-12551) #8954
Conversation
Une fois les applications déployées, elles seront accessibles via les liens suivants :
Les variables d'environnement seront accessibles via les liens suivants : |
288ca86
to
c6b5c2b
Compare
372180f
to
3186f4b
Compare
En ce qui concerne les tests unitaires, j'ai vérifié de la même manière que pour les tests d'intégration (arrêter le conteneur Redis et vérifier que les tests unitaires n'ont pas besoin de ce conteneur pour s'exécuter). Est-ce que cela suffit? Il n'y a pas de log spécifique au
|
Tout à fait. Il n'y a pas de logs spécifiques au |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lu et testé fonctionnellement en local avec succès sur Firefox.
b8b59ee
to
0ee8204
Compare
Co-authored-by: Ismael Gorissen <[email protected]> Co-authored-by: LEGO Technix <[email protected]> Co-authored-by: Eric Lim <[email protected]> Co-authored-by: Emmanuelle Bonnemay <[email protected]> Co-authored-by: Marianne Bost <[email protected]>
Co-authored-by: Ismael Gorissen <[email protected]> Co-authored-by: LEGO Technix <[email protected]> Co-authored-by: Eric Lim <[email protected]> Co-authored-by: Emmanuelle Bonnemay <[email protected]> Co-authored-by: Marianne Bost <[email protected]>
wrt the REDIS_URL environment variable.
rather use RedisTemporaryStorage instead, which is the true infrastructure component used in production. Co-authored-by: Ismael Gorissen <[email protected]> Co-authored-by: LEGO Technix <[email protected]> Co-authored-by: Eric Lim <[email protected]> Co-authored-by: Emmanuelle Bonnemay <emmanuelle.bonnemay@
0ee8204
to
b2f47d6
Compare
🦄 Problème
Le
InMemoryTemporaryStorage
ne suit pas laTemporaryStorage
API et est utilisé à tort dans les tests d'intégration.Une conséquence de cela est que le
PoleEmploiOidcAuthenticationService
et leFwbOidcAuthenticationService
sont testés avec une mauvaise implémentation et leurs comportements sont dysfonctionnels concernant la méthodegetRedirectLogoutUrl
qui ne fournit pas un'id_token_hint
.🤖 Proposition
TemporaryStorage
API auInMemoryTemporaryStorage
en rendant les méthodes du second asynchrones comme le sont celles du premierRedisTemporaryStorage
à la place duInMemoryTemporaryStorage
, car les tests d'intégration servent à tester les composants dans le cadre d'un environnement où l'infrastructure est la plus proche possible de celle de la production🌈 Remarques
Il faudrait également que les tests d'intégration mettant en jeu le
LearningContentCache
utilisent Redis au lieu d'utiliser uniquement leInMemoryCache
.Pour cela il faudrait mettre dans
api/src/shared/config.js
:Et dans
api/tests/acceptance/application/cache/cache-controller_test.js
il faudrait utiliserconfig.caching.redisUrl
au lieu d'utiliserprocess.env.TEST_REDIS_URL
directement.Mais cette correction s'est avérée difficile et on n'a pas réussi à en venir à bout dans un temps limité et nous avons abandonné cette correction qui n'est pas dans le scope de l'équipe Accès.
💯 Pour tester
InMemoryTemporaryStorage
(pour cela on peut arrêter le conteneur de Redis –docker stop <container_id>
– et constater que les tests unitaires continuent de fonctionner sans erreur)RedisTemporaryStorage
(pour cela on peut arrêter le conteneur de Redis –docker stop <container_id>
– et constater que les tests d'intégration sont en erreur)