safe-action-testing — скилл для Claude Code: тесты next-safe-action
Подсказывает агенту, как писать тесты для экшенов и хуков next-safe-action на Vitest: валидация, middleware, серверные ошибки.
npx skills add next-safe-action/skills --skill safe-action-testing -a claude-codeЧто делает safe-action-testing
Скилл включается, когда вы просите написать тесты для next-safe-action. Агент получает готовые шаблоны на Vitest: прямой вызов серверного экшена, проверка result.data, validationErrors и serverError, тесты экшенов с bind-аргументами.
Отдельные разделы — про middleware и хуки. Для middleware показано, как собрать клиент с нужной цепочкой и замокать сессию через vi.mock, а для хуков — renderHook из React Testing Library с проверкой состояний isIdle, isExecuting, hasSucceeded и вызовом reset. Есть утилиты flattenValidationErrors и formatValidationErrors и мок next/navigation для редиректов.
Ошибки валидации bind-аргументов выбрасываются как ActionBindArgsValidationError, поэтому в тестах их ловят через rejects.toThrow(), а не через result.validationErrors. Форматы digest у NEXT_REDIRECT — внутренняя деталь Next.js, и в самом скилле отмечено, что между версиями они меняются.
Какие задачи решает
- написать тесты для серверного экшена next-safe-action
- проверить, что middleware прокидывает userId в контекст
- замокать сессию и убедиться, что без неё возвращается serverError
- протестировать хук useAction через renderHook
- поймать ошибку валидации bind-аргументов в тесте
Примеры запросов агенту
- Напиши тесты на Vitest для экшена
createUserиз@/app/actions, проверь успех и ошибки валидации - Протестируй middleware с проверкой сессии: собери клиент и замокай
getSession - Напиши тест хука
useActionчерезrenderHook, проверь состояния иreset
Как установить safe-action-testing
1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-testing -a claude-code2Вручную: положить файлы
~/.claude/skills/safe-action-testing/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/safe-action-testing/
1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-testing -a codex2Вручную: положить файлы
.agents/skills/safe-action-testing/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-testing -a cursor2Вручную: положить файлы
.cursor/skills/safe-action-testing/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install next-safe-action/skills safe-action-testing2Вручную: положить файлы
.github/skills/safe-action-testing/SKILL.md1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-testing -a gemini-cli2Командой платформы
gemini skills install https://github.com/next-safe-action/skills --path skills/safe-action-testingВручную: положить файлы
.devin/skills/safe-action-testing/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-testing -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о safe-action-testing
Как установить safe-action-testing в Claude Code?
Выполните npx skills add next-safe-action/skills --skill safe-action-testing -a claude-code. Файл скилла появится по пути ~/.claude/skills/safe-action-testing/SKILL.md.
Что делает safe-action-testing?
Даёт агенту шаблоны тестов на Vitest для экшенов и хуков next-safe-action: прямой вызов экшена, middleware, renderHook, ошибки валидации и серверные ошибки.
Чем тестируются bind-аргументы?
Ошибки валидации bind-аргументов выбрасываются как ActionBindArgsValidationError, поэтому их проверяют через rejects.toThrow(), а не через поле validationErrors в результате.