clerk-testing

Par clerk · skills

Tests E2E pour les applications Clerk. À utiliser avec Playwright ou Cypress pour les flux d'authentification

npx skills add https://github.com/clerk/skills --skill clerk-testing

Tests

Arbre de décision

Framework Documentation
Vue d'ensemble https://clerk.com/docs/guides/development/testing/overview
Playwright https://clerk.com/docs/guides/development/testing/playwright/overview
Cypress https://clerk.com/docs/guides/development/testing/cypress/overview

Modèle mental

Tester l'auth = état de session isolé. Chaque test a besoin d'un contexte d'authentification frais.

  • clerkSetup() initialise l'environnement de test
  • setupClerkTestingToken() contourne la détection de bot
  • storageState persiste l'auth entre les tests pour plus de rapidité

Flux de travail

  1. Identifier le framework de test (Playwright ou Cypress)
  2. Récupérer l'URL appropriée de l'arbre de décision ci-dessus
  3. Suivre les instructions de configuration officielles
  4. Utiliser uniquement les clés d'instance de développement (pk_test_* / sk_test_*). Si le projet n'a pas encore de clés, npx clerk@latest init (la CLI Clerk ; voir clerk-setup) crée une application Clerk et écrit les clés d'instance de développement dans le fichier env. Aucun compte Clerk ou visite du Dashboard n'est nécessaire.

Bonnes pratiques

  • Utiliser setupClerkTestingToken() avant de naviguer vers les pages d'authentification
  • Utiliser les clés API de test : pk_test_xxx, sk_test_xxx
  • Sauvegarder l'état d'auth avec storageState pour des tests plus rapides
  • Utiliser page.waitForSelector('[data-clerk-component]') pour l'interface Clerk

Anti-patterns

Pattern Problème Solution
Clés de production dans les tests Risque de sécurité Utiliser les clés pk_test_*
Pas de setupClerkTestingToken() L'auth échoue Appeler avant la navigation
Connexion par interface à chaque test Tests lents Utiliser storageState

Spécifique au framework

Playwright : Utiliser globalSetup pour l'état d'auth Cypress : Ajouter addClerkCommands({ Cypress, cy }) au fichier support

Voir aussi

  • clerk-setup - Installer Clerk avant d'ajouter des tests
  • clerk-nextjs-patterns - Patterns Next.js en cours de test
  • Dépôt de démonstration

Skills similaires