04 - Tests et Validation
04 - Tests et Validation
Documentation technique
Audience : Développeurs
Durée estimée : 15-30 minutes (lecture)
Prérequis : 03 - Workflow de Développement terminé
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
2.1. Couche L1 - Contenu (Sanity)
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
# 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)
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
# 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
- 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)
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
- 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
# 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
- 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
3.1. Test d’intégration L1 + L2 + L3 (Formulaire de contact)1/3
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
3.1. Test d’intégration L1 + L2 + L3 (Formulaire de contact)2/3
-
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
3.1. Test d’intégration L1 + L2 + L3 (Formulaire de contact)3/3
-
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
4.1. Typecheck
# Typecheck de tous les workspacestask typecheck
# Typecheck des services Workerstask typecheck:servicesAttendu : Aucune erreur de type
4.2. Linting
# Linting de tous les workspacestask lintAttendu : Aucune erreur de linting
4.3. Check complet
# Lint + Typechecktask checkAttendu : Aucune erreur
5. Validation avant déploiement
5.1. Checklist de validation1/2
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
5.1. Checklist de validation2/2
- 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
# 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
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
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
- 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
Une fois les tests validés, vous pouvez procéder au développement ou au déploiement.
9. Historique des modifications
| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-16 | 1.0 | Création initiale | Devin |