Ce projet est une application React qui implémente un formulaire d'enregistrement avec validation des champs et affichage de notifications.
- Validation des champs en temps réel
- Vérification de l'âge (18 ans minimum)
- Validation du format email
- Validation du code postal français
- Notification de succès après soumission
- Tests unitaires et d'intégration
Dans le répertoire du projet, vous pouvez exécuter :
Lance l'application en mode développement.
Ouvrez http://localhost:3000 pour la voir dans votre navigateur.
Lance les tests en mode interactif.
Les tests incluent :
- Validation des champs
- Gestion des erreurs
- Tests des composants React
- Tests d'intégration
-
Tests de Succès
- ✓ Rendu du composant Toastr lors d'une inscription réussie
- ✓ Absence du composant Toastr à l'initialisation
-
Tests de Validation
- ✓ Prénom invalide (caractères numériques)
- ✓ Nom invalide (caractères numériques)
- ✓ Email invalide (format incorrect)
- ✓ Date de naissance invalide (âge < 18 ans)
- ✓ Ville invalide (champ vide)
- ✓ Code postal invalide (format incorrect)
-
Tests isOver18
- ✓ Validation pour âge ≥ 18 ans
- ✓ Rejet pour âge < 18 ans
- ✓ Calcul correct avec anniversaire à venir
- ✓ Calcul précis pour même mois
-
Tests isValidPostalCode
- ✓ Accepte : "75000"
- ✓ Rejette : "abc", "1234", "123456", caractères spéciaux
-
Tests isValidName
- ✓ Accepte : "John", "Jean-Pierre", "Éléonore"
- ✓ Rejette : "123", champ vide, "John123", caractères spéciaux
-
Tests isValidEmail
- ✓ Accepte : "test@example.com"
- ✓ Rejette : "invalid-email", "test@.com", "test@com"
-
Tests areAllFieldsFilled
- ✓ Validation formulaire complet
- ✓ Détection champs manquants
-
Tests Composant Toast
- ✓ Affichage correct du toast
- ✓ Gestion de la fermeture
-
Tests calculateAge
- ✓ Calcul correct de l'âge
- ✓ Gestion des erreurs :
- Arguments manquants
- Type d'argument incorrect
- Absence de date de naissance
- Format de date invalide
-
Tests Serveur
- ✓ Route GET /users
- ✓ Format JSON des réponses
- ✓ Gestion base de données vide
Pour générer le rapport de couverture :
npm run test:coverage
Les tests couvrent :
- Validation des données
- Logique métier
- Composants React
- Intégration API
- Interface utilisateur
- Gestion des erreurs
// ...existing code...
Lance les tests avec génération du rapport de couverture.
Compile l'application pour la production dans le dossier build
.
Le projet utilise GitHub Actions pour :
- Exécuter les tests automatiquement
- Vérifier la couverture de code
- Déployer automatiquement sur GitHub Pages
L'application est déployée automatiquement sur GitHub Pages à chaque push sur la branche master. URL de production : https://Hugogoncalves06.github.io/IntegrationContinue/
Ce projet inclut un script Bash pour automatiser la gestion des versions dans le fichier package.json
et le déploiement des nouvelles versions via Git.
- Vérifie l'existence du fichier
package.json
. - Extrait la version actuelle du fichier
package.json
. - Incrémente automatiquement la version de patch (dernier chiffre dans
x.x.x
). - Met à jour la version dans
package.json
. - Crée un commit Git avec la nouvelle version.
- Ajoute un tag Git correspondant à la nouvelle version.
- Pousse le tag vers le dépôt distant.
- Assurez-vous que le script est exécutable :
chmod +x scripts/deploy_new_version.sh
- Exécutez le script :
./scripts/deploy_new_version.sh
Current version: 1.0.0
Updated version: 1.0.1
pushing the new version to git
- Un fichier
package.json
valide avec un champversion
. - Git configuré et connecté à un dépôt distant.
- Droits d'accès pour pousser des tags sur le dépôt distant.
Le script est situé dans le chemin suivant :
scripts/deploy_new_version.sh
- Le script incrémente uniquement la version de patch. Pour modifier la version majeure ou mineure, effectuez les changements manuellement dans
package.json
avant d'exécuter le script. - Assurez-vous que votre dépôt Git est propre (aucune modification non commitée) avant d'exécuter le script.
- Le script utilise des tags Git pour versionner. Vérifiez que votre dépôt distant accepte les tags.
- React 18.2.0
- Jest pour les tests
- GitHub Actions pour CI/CD
- GitHub Pages pour l'hébergement