clerk-testing
bởi clerk
Các tiện ích kiểm thử E2E cho luồng xác thực Clerk trong Playwright và Cypress. Hỗ trợ cả hai framework Playwright và Cypress với các mẫu thiết lập dành riêng cho từng framework (globalSetup cho Playwright, custom commands cho Cypress). Cung cấp các tiện ích clerkSetup() và setupClerkTestingToken() để khởi tạo môi trường kiểm thử và vượt qua tính năng phát hiện bot. Bao gồm tính năng lưu trạng thái storageState để tái sử dụng các phiên đã xác thực qua các bài kiểm thử, giúp giảm thời gian thực thi kiểm thử. Yêu cầu khóa API kiểm thử ( pk_test_* ,...
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
pk_test_*andsk_test_*keys only
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