Skip to content

04 - Tests et Validation

Audience : Développeurs
Durée estimée : 15-30 minutes (lecture)
Prérequis : 03 - Workflow de Développement terminé


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.


  1. Lancer le Sanity Studio : task dev:studio
  2. Accéder à http://localhost:3333
  3. Se connecter avec les credentials Sanity
  4. Créer un document de test (ex: article de blog)
  5. Vérifier que le document est bien sauvegardé
  6. Supprimer le document de test
Terminal window
# Vérifier que les credentials sont valides
curl -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”


  1. Lancer le serveur Astro : task dev
  2. Accéder à http://localhost:4321
  3. Vérifier que la page d’accueil s’affiche correctement
  4. Vérifier que les liens de navigation fonctionnent
  5. Vérifier que les pages de blog s’affichent correctement
Terminal window
# Page d'accueil
curl http://localhost:4321
# Page blog
curl http://localhost:4321/blog
# Page contact
curl http://localhost:4321/contact
# Page about
curl http://localhost:4321/about

Attendu : Page HTML avec contenu correct pour chaque route

  1. Activer le mode preview via l’endpoint /api/preview?secret=YOUR_SECRET&slug=/welcome
  2. Vérifier que la bannière de preview s’affiche
  3. Quitter le mode preview via /api/exit-preview
  4. Vérifier que la bannière a disparu

2.3. Couche L3 - Backend (Cloudflare Workers)

Section titled “2.3. Couche L3 - Backend (Cloudflare Workers)”
  1. Lancer le Worker form-handler : task dev:form-handler
  2. Accéder à http://localhost:8787/health
  3. Vérifier que la réponse est {"status":"healthy"}
  1. Lancer le Worker submission-processor : task dev:submission-processor
  2. Accéder à http://localhost:8789/health
  3. Vérifier que la réponse inclut les infos Sanity
Terminal window
# 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

  1. Lancer tous les services (Astro, form-handler, submission-processor)
  2. Accéder à http://localhost:4321/contact
  3. Remplir le formulaire avec des données de test
  4. Soumettre le formulaire
  5. Vérifier que la réponse est un succès
  6. Vérifier dans Sanity Studio que le document a été créé

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.

  1. 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
  2. Accéder à http://localhost:4321/contact

  3. Remplir le formulaire :

    • Nom : Test Integration
    • Email : test@example.com
    • Message : Ceci est un test d’intégration L1+L2+L3
  4. Soumettre le formulaire

  5. Vérifier la réponse :

    • Attendu : Message de succès avec ID de soumission
  6. 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
  7. Nettoyer :

    • Supprimer le document de test dans Sanity Studio

Terminal window
# Typecheck de tous les workspaces
task typecheck
# Typecheck des services Workers
task typecheck:services

Attendu : Aucune erreur de type

Terminal window
# Linting de tous les workspaces
task lint

Attendu : Aucune erreur de linting

Terminal window
# Lint + Typecheck
task check

Attendu : Aucune erreur


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
Terminal window
# Build de l'application web
task build:web
# Build du Sanity Studio
task build:studio
# Build complet
task build:all

Attendu : Build réussi sans erreurs


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

Pour voir les logs des services en temps réel :

Terminal window
# 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és


Une fois les tests validés, vous pouvez procéder au développement ou au déploiement.


Date Version Description Auteur
2026-09-16 1.0 Création initiale Devin