clerk-testing
द्वारा clerk
Clerk प्रमाणीकरण प्रवाहों के लिए Playwright और Cypress में E2E परीक्षण उपयोगिताएँ। Playwright और Cypress दोनों फ्रेमवर्क का समर्थन करता है, जिसमें फ्रेमवर्क-विशिष्ट सेटअप पैटर्न (Playwright के लिए globalSetup, Cypress के लिए कस्टम कमांड) शामिल हैं। परीक्षण वातावरण को आरंभ करने और बॉट डिटेक्शन को बायपास करने के लिए clerkSetup() और setupClerkTestingToken() उपयोगिताएँ प्रदान करता है। परीक्षण निष्पादन समय को कम करने के लिए, प्रमाणित सत्रों को परीक्षणों में पुन: उपयोग कर
npx skills add https://github.com/clerk/skills --skill clerk-testingTesting
Decision Tree
Mental Model
Test auth = isolated session state. Each test needs fresh auth context.
clerkSetup()initializes test environmentsetupClerkTestingToken()bypasses bot detectionstorageStatepersists auth between tests for speed
Workflow
- Identify test framework (Playwright or Cypress)
- WebFetch the appropriate URL from decision tree above
- Follow official setup instructions
- Use development-instance keys only (
pk_test_*/sk_test_*). If the project has no keys yet,npx clerk@latest init(the Clerk CLI; seeclerk-setup) creates a Clerk application and writes development-instance keys to the env file. No Clerk account or Dashboard visit is needed.
Best Practices
- Use
setupClerkTestingToken()before navigating to auth pages - Use test API keys:
pk_test_xxx,sk_test_xxx - Save auth state with
storageStatefor faster tests - Use
page.waitForSelector('[data-clerk-component]')for Clerk UI
Anti-Patterns
| Pattern | Problem | Fix |
|---|---|---|
| Production keys in tests | Security risk | Use pk_test_* keys |
No setupClerkTestingToken() | Auth fails | Call before navigation |
| UI-based sign-in every test | Slow tests | Use storageState |
Framework-Specific
Playwright: Use globalSetup for auth state
Cypress: Add addClerkCommands({ Cypress, cy }) to support file
See Also
clerk-setup- Install Clerk before adding testsclerk-nextjs-patterns- Next.js patterns being tested- Demo Repo