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

Tech - Migration vers Vite #964

Closed
ivangabriele opened this issue Nov 15, 2023 · 0 comments · Fixed by #1150
Closed

Tech - Migration vers Vite #964

ivangabriele opened this issue Nov 15, 2023 · 0 comments · Fixed by #1150
Assignees
Labels
tech. enhancement technical enhancement

Comments

@ivangabriele
Copy link
Member

No description provided.

@ivangabriele ivangabriele self-assigned this Nov 15, 2023
@ivangabriele ivangabriele changed the title [Tech] Migration vers Vite Tech - Migration vers Vite Nov 15, 2023
@ivangabriele ivangabriele added tech. enhancement technical enhancement and removed tech. debt labels Nov 16, 2023
ivangabriele added a commit that referenced this issue Nov 21, 2023
## Related Pull Requests & Issues

- #964

----

- [ ] Tests E2E (Cypress)
ivangabriele added a commit that referenced this issue Jan 30, 2024
- Conseil : checker les commits un par un pour ne pas mélanger
renommages et diffs, en particulier le 3ème qui est le seul à contenir
les changements de code.
- J'ai préféré les TODO et any à des refactos dangereuses. Il n'y a
normalement que peu de code "concret" modifié.
- J'ai supprimé quelques utils et une story au passage.
- Je ne comprends pas trop pourquoi on a un gros fichier JS pour les
drapeaux, il n'y a pas de lib pour ça ? On ne pourrait pas tout
simplement utiliser les emojis unicodes natifs (= gros gain de poids) ?

## Related Pull Requests & Issues

- #964
- #1014
- Resolve #1155

----

- [ ] Tests E2E (Cypress)
ivangabriele added a commit that referenced this issue Feb 9, 2024
## Taches effectuées

- Migration des imports SVG en tant que composants pour les adapter à
Vite.
- Séparation des envs Frontend des autres via un fichier
`/frontend/.env.example`
(⚠️ **qu'il faut maintenant copier localement dans un
`/frontend/.env`**).
- Injection des variables d'environnement Frontend au runtime (et non au
buildtime) via [`import-meta-env`](https://import-meta-env.org/), comme
sur MonitorFish. [Voir l'ADR
correspondant](https://github.com/MTES-MCT/monitorfish/blob/master/adrs/0001-frontend-runtime-env-var-injection.md).
- Création d'un utilitaire `isPuppeteer()` pour différencier les
conditions que l'on applique pour les tests Puppeteer de celles qu'on
applique aux tests Cypress. Même principe qu'avec `isCypress()`.
- Traduction à la volée des instructions de contribution legacy et
déplacement vers le fichier `CONTRIBUTING.md`.
- Début d'écriture des instructions de contribution mises à jour dans ce
même fichier, en anglais, pour faciliter le partage éventuel avec
d'autres équipes de l'UE.
- Remplacement de la commande `npm run cypress:open` par `npm run
test:e2e:open`.
- Petite refacto qui déplace les constantes de
`frontend/src/features/missions/MissionForm/sse.ts` dans un fichier
séparé pour éviter un import cycle.

~~Je me suis aussi permis de désactiver un des tests des points
d'întérêt parce qu'on est à près de 10% de failure, il y a au moins 4
bugs notables connus sur cette feature et Adeline a prévu de la revoir
entièrement.~~

![image](https://github.com/MTES-MCT/monitorenv/assets/5957876/4ce84534-2351-4bfe-8b17-decb6ea11c29)

## Notes

- GitGuardian râle pour une clé de dév qui était déjà présente mais qui
a été déplacée dans le nouveau ficher `fontend/.env.example`.
- Il y aura un soucis avec monitor-ui concernant `cy.fill()` lorsqu'on
passera à une der versions Rsuite `>5.45.0` qui casse la structure DOM
des fields en assignant l'attribut `id` au wrapper (`div`) au lieu de le
passer à l'input. Cet attribut est ciblé par attributs `for` des labels.
Je ferai le fix.
- Les tests e2e des missions sont localement instables à cause de
`clickOutside()` manquants ou qui ne ferment pas correctement certains
dropdowns. À investiguer ?

## Review

- Ca serait idéal si vous pouviez tester que tout fonctionne bien
localement chez vous. Env est assez léger pour tourner sur Chrome en
mode dev chez moi contrairement à Fish.
- Je vous conseille de cloner cette branche sous un autre dossier car le
switch entre CRA et Vite n'est pas fun d'une branche à l'autre.

## ⚠️ Derniers points à voir ensemble

- Faire le tour des impications staging / prod concernant les variables
d'environnement @louptheron @thoomasbro.
- Il n'y a pas de `FRONTEND_MISSION_FORM_AUTO_SAVE_ENABLED` dans le
docker compose de prod, c'est normal @louptheron ? Rien de problématique
mais juste pour être sûr.

## Related Pull Requests & Issues

- Resolve #964
- #1014

----

- [ ] Tests E2E (Cypress)
@claire2212 claire2212 moved this to Done in Kanban MonitorEnv Jun 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tech. enhancement technical enhancement
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant