Standards d'équipe liés au Code
20 Avril 2023
Choix du langage
- les objets métiers sont en français
- les intitulés de test sont en français
- Le reste du code est en anglais
exemple : getJobÉtudiant
, OffreEmploi
, it("récupère la liste des alternances", () => ...)
Principes généraux
Fonctions
- privilégier les fonctions nommées et avec le constructeur
function
au lieu des arrow functions() =>
- nommer la callback des useEffect
- préciser le type de sortie de fonction
useEffect(function myFunction() {
/* contenu de la fonction */
}, []);
function mapOffreStage(response: Strapi.CollectionType.OffreStage): OffreDeStage {
return { ... };
}
Nommage des fichiers et dossiers
- composant, style : PascalCase,
ButtonPrimary.tsx
,ButtonPrimary.module.scss
- tout le reste : camelCase,
httpClient.service.ts
,offreEmploi.ts
,offreEmploi.repository.ts
Plus d'info sur l'arborescence des dossiers
Nommage des collections
Une variable représentant une collection sera suffixée par le mot List
afin d'éviter le pluriel, parfois en conflit avec des mots invariables
_exemple: const offreEmploiList: Array<OffreEmploi> = [...]
Stratégie de test
Nous favorisons des tests unitaires autant que possible, rapides à exécuter. Les tests de composants via React Testing Library complètent ces tests afin de tester l'affichage, par l'arbre d'accessibilité
- tests unitaires autant que possible
- tests d'intégration sur les endpoints API
- tests de composants via React Testing Library sur les composants comportant de la logique d'affichage, de la validation (formulaires) et récupération de données
- tests end-to-end pour simuler un workflow complet utilisateur sur une fonctionnalité. Exemple : recherche d'une offre d'emploi puis consultation du détail d'une offre