04 - Tests et Validation
Audience : Développeurs
Durée estimée : 15-30 minutes (lecture)
Prérequis : 03 - Workflow de Développement terminé
1. Vue dâensemble
Section titled â1. Vue dâensembleâLe projet actuel nâa pas de tests automatisĂ©s configurĂ©s. Les tests sont effectuĂ©s manuellement via des procĂ©dures de validation.
Ce guide documente les procédures de test manuelles pour chaque couche du projet.
2. Tests manuels par couche
Section titled â2. Tests manuels par coucheâ2.1. Couche L1 - Contenu (Sanity)
Section titled â2.1. Couche L1 - Contenu (Sanity)âTest du Sanity Studio
Section titled âTest du Sanity Studioâ- Lancer le Sanity Studio :
task dev:studio - Accéder à http://localhost:3333
- Se connecter avec les credentials Sanity
- Créer un document de test (ex: article de blog)
- Vérifier que le document est bien sauvegardé
- Supprimer le document de test
Test de lâAPI Sanity
Section titled âTest de lâAPI Sanityâ# VĂ©rifier que les credentials sont validescurl -X POST https://api.sanity.io/v2024-01-01/data/query/production \ -H "Authorization: Bearer $SANITY_API_READ_TOKEN" \ -H "Content-Type: application/json" \ -d '{"query": "*[_type == \"post\"]"}'Attendu : JSON avec les documents de type âpostâ
2.2. Couche L2 - Présentation (Astro)
Section titled â2.2. Couche L2 - PrĂ©sentation (Astro)âTest du serveur de dĂ©veloppement
Section titled âTest du serveur de dĂ©veloppementâ- Lancer le serveur Astro :
task dev - Accéder à http://localhost:4321
- VĂ©rifier que la page dâaccueil sâaffiche correctement
- Vérifier que les liens de navigation fonctionnent
- VĂ©rifier que les pages de blog sâaffichent correctement
Test des routes principales
Section titled âTest des routes principalesâ# Page d'accueilcurl http://localhost:4321
# Page blogcurl http://localhost:4321/blog
# Page contactcurl http://localhost:4321/contact
# Page aboutcurl http://localhost:4321/aboutAttendu : Page HTML avec contenu correct pour chaque route
Test du mode preview
Section titled âTest du mode previewâ- Activer le mode preview via lâendpoint
/api/preview?secret=YOUR_SECRET&slug=/welcome - VĂ©rifier que la banniĂšre de preview sâaffiche
- Quitter le mode preview via
/api/exit-preview - Vérifier que la banniÚre a disparu
2.3. Couche L3 - Backend (Cloudflare Workers)
Section titled â2.3. Couche L3 - Backend (Cloudflare Workers)âTest du Worker form-handler
Section titled âTest du Worker form-handlerâ- Lancer le Worker form-handler :
task dev:form-handler - Accéder à http://localhost:8787/health
- Vérifier que la réponse est
{"status":"healthy"}
Test du Worker submission-processor
Section titled âTest du Worker submission-processorâ- Lancer le Worker submission-processor :
task dev:submission-processor - Accéder à http://localhost:8789/health
- Vérifier que la réponse inclut les infos Sanity
Test du endpoint de test direct
Section titled âTest du endpoint de test directâ# Test direct (bypass Queue)curl -X POST http://localhost:8789/test-direct \ -H "Content-Type: application/json" \ -d '{"name":"Test","email":"test@example.com","message":"Test message"}'Attendu : JSON avec success: true et sanityId
Test du formulaire de contact
Section titled âTest du formulaire de contactâ- Lancer tous les services (Astro, form-handler, submission-processor)
- Accéder à http://localhost:4321/contact
- Remplir le formulaire avec des données de test
- Soumettre le formulaire
- Vérifier que la réponse est un succÚs
- Vérifier dans Sanity Studio que le document a été créé
3. Tests dâintĂ©gration
Section titled â3. Tests dâintĂ©grationâ3.1. Test dâintĂ©gration L1 + L2 + L3 (Formulaire de contact)
Section titled â3.1. Test dâintĂ©gration L1 + L2 + L3 (Formulaire de contact)âCâest le test le plus complet du projet, validant lâintĂ©gration des 3 couches.
-
Lancer tous les services :
- Terminal 1 :
task dev - Terminal 2 :
task dev:studio - Terminal 3 :
task dev:form-handler - Terminal 4 :
task dev:submission-processor
- Terminal 1 :
-
Accéder à http://localhost:4321/contact
-
Remplir le formulaire :
- Nom : Test Integration
- Email : test@example.com
- Message : Ceci est un test dâintĂ©gration L1+L2+L3
-
Soumettre le formulaire
-
Vérifier la réponse :
- Attendu : Message de succĂšs avec ID de soumission
-
Vérifier dans Sanity Studio :
- Ouvrir http://localhost:3333
- Aller dans la collection âsubmissionâ
- Vérifier que le document a été créé avec les bonnes données
-
Nettoyer :
- Supprimer le document de test dans Sanity Studio
4. Validation de la qualité du code
Section titled â4. Validation de la qualitĂ© du codeâ4.1. Typecheck
Section titled â4.1. Typecheckâ# Typecheck de tous les workspacestask typecheck
# Typecheck des services Workerstask typecheck:servicesAttendu : Aucune erreur de type
4.2. Linting
Section titled â4.2. Lintingâ# Linting de tous les workspacestask lintAttendu : Aucune erreur de linting
4.3. Check complet
Section titled â4.3. Check completâ# Lint + Typechecktask checkAttendu : Aucune erreur
5. Validation avant déploiement
Section titled â5. Validation avant dĂ©ploiementâ5.1. Checklist de validation
Section titled â5.1. Checklist de validationâAvant de dĂ©ployer en production, vĂ©rifier :
- Tous les services sont lancés localement
- Les tests manuels passent
- Le typecheck passe
- Le linting passe
- Les variables dâenvironnement sont configurĂ©es
- Les credentials sont valides
- LâintĂ©gration L1+L2+L3 fonctionne
- Le formulaire de contact fonctionne
- Le mode preview fonctionne
- Le Sanity Studio fonctionne
5.2. Test de build
Section titled â5.2. Test de buildâ# Build de l'application webtask build:web
# Build du Sanity Studiotask build:studio
# Build complettask build:allAttendu : Build réussi sans erreurs
6. Dépannage
Section titled â6. DĂ©pannageâ6.1. ProblĂšmes courants
Section titled â6.1. ProblĂšmes courantsâ| SymptĂŽme | Cause probable | Solution |
|---|---|---|
| Sanity Studio inaccessible | Credentials invalides | Vérifier .env et relancer sanity login |
| Astro serveur inaccessible | Port déjà utilisé | Vérifier avec lsof -i :4321 |
| Workers Cloudflare inaccessible | Wrangler non authentifié | Relancer wrangler login |
| Formulaire échoue | Worker form-handler non lancé | Lancer task dev:form-handler |
| Document non créé dans Sanity | Worker submission-processor non lancé | Lancer task dev:submission-processor |
6.2. Logs
Section titled â6.2. LogsâPour voir les logs des services en temps rĂ©el :
# Logs Astro Web# Visible dans le terminal oĂč `task dev` est lancĂ©
# Logs Workers# Visible dans les terminaux oĂč `task dev:form-handler` et `task dev:submission-processor` sont lancĂ©s7. Ressources
Section titled â7. Ressourcesâ- Documentation Astro : https://docs.astro.build/
- Documentation Sanity : https://www.sanity.io/docs
- Documentation Cloudflare : https://developers.cloudflare.com/
- SOP :
docs/SOP/Standard-operating-procedure.md
8. Prochaine étape
Section titled â8. Prochaine Ă©tapeâUne fois les tests validĂ©s, vous pouvez procĂ©der au dĂ©veloppement ou au dĂ©ploiement.
9. Historique des modifications
Section titled â9. Historique des modificationsâ| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-16 | 1.0 | Création initiale | Devin |