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 |