Skip to content

Guide de Test : Documentation Starlight & Microservice d'Authentification L3

Phase : Phase 0 — Composant 4
Cycle : DOC → SPEC → CODE → TEST → INTÉG
Fichier : GettingStarted/13-phase0-starlight-docs-auth-test.md


Le Composant 4 implémente l’intégration du site de documentation Starlight sous Astro avec un mécanisme de contrôle d’accès fondé sur le niveau de visibilité (public vs private) et un microservice d’authentification Cloudflare Worker L3 (services/auth-handler).


Pour tester l’ensemble du flux d’authentification et de consultation de la documentation :

Terminal window
# Terminal 1 : Démarrage du Microservice d'Authentification L3 (Port 8790)
task dev:auth-handler
# Terminal 2 : Démarrage du Front-End Astro (Port 4321)
task dev

Identifiants de test par défaut :

  • Email : admin@example.com
  • Mot de passe : password123

Scénario 1 : Accès à un Document Public (/overview)

Section titled “Scénario 1 : Accès à un Document Public (/overview)”
  1. Ouvrir un navigateur en mode privé ou sans cookie actif.
  2. Naviguer vers http://localhost:4321/overview.
  3. Résultat attendu :
    • Le document s’affiche immédiatement (200 OK).
    • Aucune redirection vers la page de connexion.

Scénario 2 : Tentative d’Accès à un Document Privé Sans Connexion (/docs/ ou /getting-started/)

Section titled “Scénario 2 : Tentative d’Accès à un Document Privé Sans Connexion (/docs/ ou /getting-started/)”
  1. Sans être connecté, naviguer vers http://localhost:4321/getting-started/01-setup (ou toute route sous /docs/ marquée visibility: private par défaut).
  2. Résultat attendu :
    • Le Middleware Astro bloque la requête.
    • Redirection automatique vers http://localhost:4321/login?redirectTo=%2Fgetting-started%2F01-setup.
    • Formulaire de connexion affiché avec le message “Connexion requise pour consulter cette documentation privée”.

Scénario 3 : Authentification Réussie & Accès Automatique

Section titled “Scénario 3 : Authentification Réussie & Accès Automatique”
  1. Sur la page /login?redirectTo=..., saisir les identifiants :
    • Email : admin@example.com
    • Password : password123
  2. Cliquer sur Se connecter.
  3. Résultat attendu :
    • Appel API POST /api/auth/login intercepté et transmis au Worker L3 amn-auth-handler.
    • Création du cookie sécurisé auth_session.
    • Redirection automatique vers la page privée demandée (/getting-started/01-setup).
    • Le document privé s’affiche correctement (200 OK).

Scénario 4 : Déconnexion (/api/auth/logout)

Section titled “Scénario 4 : Déconnexion (/api/auth/logout)”
  1. Une fois connecté, effectuer un appel POST ou accéder à la fonction de déconnexion.
  2. Résultat attendu :
    • Suppression du cookie auth_session et invalidation dans le Worker.
    • Toute tentative ultérieure d’accès à un document privé redirige à nouveau vers /login.

Terminal window
# 1. Vérification du typage sur l'ensemble du monorepo (0 erreurs)
npx pnpm@12.3.4 typecheck
# 2. Build de production de la documentation et du Worker
npx pnpm@12.3.4 --filter ./apps/web build
npx pnpm@12.3.4 --filter amn-auth-handler build