clerk-testing — скилл для Claude Code: E2E-тесты Clerk
Проводит агента по настройке E2E-тестов входа через Clerk в Playwright или Cypress и держит тестовые ключи отдельно от продакшн-конфига.
npx skills add clerk/skills --skill clerk-testing -a claude-codeЧто делает clerk-testing
Скилл ведёт агента по настройке E2E-тестов авторизации Clerk в Playwright или Cypress. Внутри дерево решений со ссылками на официальные гайды и набор правил: инициализация окружения через clerkSetup(), обход детекта ботов через setupClerkTestingToken(), сохранение сессии в storageState, чтобы не логиниться в каждом тесте заново.
Из инструментов агенту разрешён только WebFetch. Он открывает нужную страницу документации и идёт по шагам оттуда, а не пересказывает их по памяти. Ваша часть — тестовые ключи pk_test_* и sk_test_*. Если ключей в проекте нет, npx clerk@latest init создаёт приложение Clerk и записывает development-ключи в env-файл; аккаунт для этого не нужен.
Продакшн-ключи в тестах — дыра в безопасности, скилл оговаривает это отдельно. Проверьте env до первого прогона, потому что без ключей набор тестов падает на старте.
Какие задачи решает
- поднять тесты логина в Playwright с нуля
- переиспользовать сессию через
storageStateвместо повторного входа - обойти детект бота на странице авторизации
- заменить продакшн-ключи на
pk_test_*в конфиге тестов - дождаться отрисовки Clerk-виджета перед проверкой
Примеры запросов агенту
- Настрой E2E-тесты Clerk в Playwright. Ключей в проекте нет, начни с
npx clerk@latest init - Мои Cypress-тесты падают на странице логина: добавь
setupClerkTestingToken()и подключиaddClerkCommandsв support-файл - Перепиши шаг входа на
storageState, чтобы не логиниться в каждом тесте
Как установить clerk-testing
1Через Skills CLI (Vercel)
npx skills add clerk/skills --skill clerk-testing -a claude-code2Вручную: положить файлы
~/.claude/skills/clerk-testing/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/clerk-testing/
1Через Skills CLI (Vercel)
npx skills add clerk/skills --skill clerk-testing -a codex2Вручную: положить файлы
.agents/skills/clerk-testing/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add clerk/skills --skill clerk-testing -a cursor2Вручную: положить файлы
.cursor/skills/clerk-testing/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install clerk/skills clerk-testing2Вручную: положить файлы
.github/skills/clerk-testing/SKILL.md1Через Skills CLI (Vercel)
npx skills add clerk/skills --skill clerk-testing -a gemini-cli2Командой платформы
gemini skills install https://github.com/clerk/skills --path skills/clerk-testingВручную: положить файлы
.devin/skills/clerk-testing/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add clerk/skills --skill clerk-testing -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора19
Похожие
Рядом в теме «Тесты и QA»
Всё по теме «Тесты и QA» →Вопросы о clerk-testing
Как установить clerk-testing в Claude Code?
Выполните npx skills add clerk/skills --skill clerk-testing -a claude-code. Файл скилла появится по пути ~/.claude/skills/clerk-testing/SKILL.md.
Что делает clerk-testing?
Проводит агента по настройке E2E-тестов авторизации Clerk в Playwright или Cypress: открывает официальные гайды, применяет правила про тестовые ключи и хранение сессии.
Что нужно, чтобы скилл заработал?
Публикабельный ключ и CLERK_SECRET_KEY или CLERK_TESTING_TOKEN. Если ключей нет, npx clerk@latest init создаёт приложение и записывает development-ключи в env-файл.
Исходный текст
SKILL.md · MIT
---
name: clerk-testing
description: E2E testing for Clerk apps. Use with Playwright or Cypress for auth flow
tests.
allowed-tools: WebFetch
license: MIT
metadata:
author: clerk
version: 1.2.1
compatibility: Requires a publishable key and either CLERK_SECRET_KEY or CLERK_TESTING_TOKEN. Keys can be auto-generated by `clerk init` (temporary development keys, no Clerk account required), or pulled from the Clerk Dashboard.
---
# Testing
## Decision Tree
| Framework | Documentation |
|-----------|---------------|
| Overview | 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 |
## Mental Model
Test auth = isolated session state. Each test needs fresh auth context.
- `clerkSetup()` initializes test environment
- `setupClerkTestingToken()` bypasses bot detection
- `storageState` persists auth between tests for speed
## Workflow
1. Identify test framework (Playwright or Cypress)
2. WebFetch the appropriate URL from decision tree above
3. Follow official setup instructions
4. Use development-instance keys only (`pk_test_*` / `sk_test_*`). If the project has no keys yet, `npx clerk@latest init` (the Clerk CLI; see `clerk-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 `storageState` for 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 tests
- `clerk-nextjs-patterns` - Next.js patterns being tested
- [Demo Repo](https://github.com/clerk/clerk-playwright-nextjs/tree/main/e2e)
© clerk · MIT · clerk/skills