betagouv / rdv-service-public

Prise de RDV pour les services publics
https://rdv.anct.gouv.fr
GNU Affero General Public License v3.0
12 stars 2 forks source link

Détecter les erreurs JS dans les tests #4402

Closed francois-ferrandis closed 1 day ago

francois-ferrandis commented 2 days ago

Contexte

Nous avons eu pendant quelques jours des erreurs JS dans la console du navigateur sans la savoir, voir #4400.

Ce problème particulier n'est pas grave, mais il signale que si nous avons un crash dans notre code JS (au niveau des imports ou de la logique métier), nous ne serons pas prévenus.

À une époque on remontait les erreurs JS sur Sentry mais ça faisait trop de bruit (et d'appels inutiles) donc on a arrêté : #2986

@adipasquale a suggéré que l'on vérifie dans nos specs qu'il n'y a pas d'erreur JS.

Solution

Dans cette PR je mets en place un hooks qui vérifie après chaque test JS qu'on n'a pas d'erreur dans la console. Si il y a des warnings, ils sont affichés mais ne font pas échouer la spec.

Checklist

francois-ferrandis commented 2 days ago

si on était des fous paranos on vérifierait dans une spec qu’une page avec une erreur volontaire <script>throw new Error</script> est bien catchée par tes expectations

Je ne vois pas trop comment faire pour rescue l'expectation qui est dans un after(:each). T'as une idée de truc simple ?