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

Cypress test failed with hydration issue #293

Open
m-maillot opened this issue Sep 4, 2024 · 11 comments
Open

Cypress test failed with hydration issue #293

m-maillot opened this issue Sep 4, 2024 · 11 comments

Comments

@m-maillot
Copy link
Contributor

Lorsque l'on utilise cypress, on a une erreur d'hydratation lorsque l'on utilise react-dsfr. Cela fait planter les tests.

J'ai utilisé le projet de démo pour reproduire, c'est dispo ici : https://github.com/m-maillot/react-dsfr-next-appdir-demo/tree/cypress-failure

Pour info, voici l'erreur obtenue :

Google Chrome 2024-09-04 15 37 28

@ddecrulle
Copy link
Collaborator

Bonjour,

Merci pour le report. Es-tu sûr que cette erreur est causée par react-dsfr ? Il y a une issue similaire sur le dépot de cypress

@m-maillot
Copy link
Contributor Author

En effet, cela ne se produit qu'avec react-dsfr mais également que dans l'environnement de cypress. Je n'ai pas l'erreur en dev.

Je suis tombé sur ce repo : https://github.com/JehanneDussert/admin-portal/blob/main/web/app/layout.tsx#L27

J'ai reproduit le hack sur mon repo d'exemple et ça ne reproduit plus l'erreur. Après, on peut aussi désactiver ces erreurs.
Je vais continuer d'investiguer car ce serait dommage de ne pas pouvoir tester avec cypress nos sites utilisant nextjs + react-dsfr.

@garronej
Copy link
Collaborator

garronej commented Sep 4, 2024

Salut @m-maillot,

Es-ce que tu peut produire les commandes précisent pour reproduire.
Je n'utilise pas Cypress

@m-maillot
Copy link
Contributor Author

Sur la branche m-maillot/react-dsfr-next-appdir-demo@cypress-failure

Il faut lancer les commandes :

yarn dev & yarn cypress:open

Tu as l'écran cypress qui s'ouvre et tu cliques sur E2E Testing :
CleanShot 2024-09-04 at 17 10 00@2x

Ensuite du sélectionne le browser et tu cliques sur Start E2E testing

CleanShot 2024-09-04 at 17 10 27@2x

Tu cliques ensuite le home.spec.ts

CleanShot 2024-09-04 at 17 11 23@2x

et là on peut voir que ça failed

CleanShot 2024-09-04 at 17 12 48@2x

Et si tu cliques sur les 2 errors, tu peux voir l'erreur que j'ai mis dans l'issue.

garronej added a commit that referenced this issue Sep 5, 2024
@garronej
Copy link
Collaborator

garronej commented Sep 5, 2024

Merci @ddecrulle pour avoir trouvée la bonne issue.

@m-maillot J'ai publier une nouvelle version 1.11.6, vous n'aurez plus le probilème.

PS: Ce n'etais pas un bug de react-dsfr, j'ai pu contourner le problème mais le problème viens de Cypress.

@m-maillot
Copy link
Contributor Author

Merci ! Ca marche bien sur l'exemple mais pas sur notre code... on doit avoir autre chose qui bloque. Je vais essayer d'investiguer et reproduire notre cas dans un exemple.

@m-maillot
Copy link
Contributor Author

Salut @garronej !

Avec la nouvelle version, on a l'erreur d'hydratation même en prod.
Sur la page https://code-du-travail-numerique-maxgfr-dsfr-header-3yalj0ue.ovh.fabrique.social.gouv.fr/stats, quand on regarde la console, on voir l'erreur d'hydratation.
Sans le Suspense, on ne l'avait pas. Elle n'était présente que sur les tests avec Cypress. Je pense que le Suspense apporte une régression ici.

@garronej
Copy link
Collaborator

garronej commented Sep 9, 2024

Bonjour @m-maillot,

Désolé pour la régression.
Il s'agit probablement d'une nouvelle erreur d'hydratation, cette fois-ci probablement causée par Sentry.
Pour nous aider à résoudre ce problème, pourriez-vous créer un dépôt de reproduction de l'erreur, ou à minima fournir les étapes précises pour la reproduire ? Nous nous engageons à corriger cela rapidement.

Ce qui est un peu frustrant, c'est que le bug ne vient pas de react-dsfr, mais des outils satellites (Cypress, Sentry) qui transgressent les règles établies. Nous sommes contraints de composer avec leurs hacks pour que tout fonctionne correctement, mais cela devrait être la responsabilité de ces outils de ne pas casser l'application de leurs utilisateurs...

garronej added a commit that referenced this issue Sep 9, 2024
@garronej
Copy link
Collaborator

garronej commented Sep 9, 2024

I rolled back the fix for now

@garronej garronej reopened this Sep 9, 2024
@m-maillot
Copy link
Contributor Author

Merci ! Je vais essayer de reproduire sur la démo. Si ça vient de Sentry, je vais essayer de l'ajouter pour le reproduire.

@garronej
Copy link
Collaborator

garronej commented Sep 9, 2024

Super @m-maillot, merci pour ton aide pour améliorer react-dsfr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants