К основному содержанию
скилл CX Codex

jest — скилл для Claude Code: правила тестов на Jest

Скилл задаёт агенту правила написания тестов на Jest: структура, моки, ассерты, асинхронность. Пригодится, когда тесты в проекте пишет ИИ.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Mindrally/skills --skill jest -a claude-code
Открыть на GitHub

Что делает jest

Скилл описывает, как агент должен писать тесты на Jest в проектах на JavaScript и TypeScript. Внутри — набор правил: имена тестов объясняют ожидаемое поведение, блоки describe группируют проверки, каждый тест идёт по схеме Arrange-Act-Assert и проверяет одну вещь.

Отдельные разделы про изоляцию и моки. Для подготовки и очистки используются beforeEach, afterEach, а beforeAll и afterAll — только для дорогой настройки, которую можно переиспользовать. Модули подменяются через jest.mock(), функции — через jest.fn(), а jest.spyOn() нужен, когда вызовы надо отследить, но реализацию сохранить. Между тестами моки чистятся через jest.clearAllMocks(). Есть и предупреждение: не увлекаться подменой, где можно проверить настоящее поведение.

По ассертам правило простое: брать самый точный матчер. toEqual для объектов, toBe для примитивов, снапшоты — редко и с понятными именами. Асинхронные тесты возвращают промис или используют async/await, а покрытие измеряется флагом --coverage. Скилл ничего не устанавливает в проект, поэтому конфликтов с вашим конфигом Jest не будет — это только инструкция для агента.

Какие задачи решает

  • писать тесты на Jest по единому шаблону
  • разложить проверки по блокам describe
  • подменить модуль или функцию в тесте
  • проверить асинхронный код без повисших промисов
  • следить за покрытием через флаг --coverage

Примеры запросов агенту

  • Напиши тесты на Jest для модуля fetchUser: успешный ответ API и ошибка.
  • Отрефактори эти тесты: вынеси подготовку в beforeEach, почисти моки через jest.clearAllMocks().
  • Добавь негативные кейсы к тестам и проверь покрытие с --coverage.

Как установить jest

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill jest -a claude-code

2Вручную: положить файлы

~/.claude/skills/jest/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/jest/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора168

swr Инструкции по настройке SWR в связке с React и TypeScript. Помогает агенту писать хуки для выборки, кеширования и мутаций данных. CX Codex +1 870установок django-rest-api-development Скилл задаёт агенту правила разработки REST API на Django: структура проекта, сериализаторы, JWT-аутентификация и работа с запросами к базе. CX Codex +1 868установок data-jupyter-python Задаёт агенту правила работы с pandas, numpy, matplotlib и seaborn: векторизация вместо циклов, воспроизводимые ноутбуки, аккуратные графики. CX Codex +1 865установок openai-api-development Скилл для разработки на OpenAI API: подсказывает, как писать вызовы GPT, function calling, эмбеддинги и Assistants API на Python. CX Codex +1 864установок ruby-rails Скилл задаёт агенту правила разработки на Ruby on Rails: генераторы, ActiveRecord, Hotwire, фоновые задачи и тесты. Пригодится, когда проект уже на Rails или только заводится. CX Codex +1 862установок seo-best-practices Задаёт правила поисковой оптимизации для веб-приложений. Помогает настроить метатеги, разметку JSON-LD, рендеринг и показатели Core Web Vitals. CX Codex +1 858установок fastify-typescript Задаёт агенту соглашения по Fastify и TypeScript: схемы валидации, плагины, Prisma и тесты через Jest. Пригодится, когда пишете типизированный REST API. CX Codex +1 856установок performance-optimization Набор правил для веб-производительности: серверный рендеринг, CSS, JavaScript, ассеты и кэш. Полезен, когда агент пишет фронтенд и вы хотите задать ему планку. CX Codex +1 848установок

Похожие

bun-jest-migration secondsky Скилл ведёт миграцию тестов с Jest на встроенный раннер Bun: импорты, моки, таймеры, конфиг. CX Codex +1 386установок jest-react-testing manutej Скилл для тестирования React-компонентов и хуков через Jest и React Testing Library: конфигурация, моки, асинхронные сценарии. CX Codex +1 1 200установок testing-anti-patterns bobmatnyc Скилл помогает находить ошибки в тестах: проверки поведения моков, тестовые методы в продакшене и неполные заглушки. CX Codex +1 368установок javascript-testing-patterns Seth Hobson Скилл подсказывает, как писать unit-, интеграционные и end-to-end-тесты для JavaScript и TypeScript. Пригодится при настройке тестовой инфраструктуры и работе по TDD. CX Codex 20 472установок experience-lwc-accessibility-jest-run forcedotcom Запускает модульные тесты доступности Sa11y Jest для компонентов LWC в среде Bazel или автономном Jest. CX Codex +1 898установок bun-runtime affaan-m Скилл объясняет агенту, когда брать Bun вместо Node, и даёт команды для установки, тестов и деплоя на Vercel. CX Codex +1 4 700установок

Рядом в теме «Тесты и QA»

Всё по теме «Тесты и QA» →

Вопросы о jest

Как установить скилл jest в Claude?

Выполните npx skills add Mindrally/skills --skill jest -a claude-code. Файл скилла окажется в ~/.claude/skills/jest/SKILL.md.

Что делает скилл jest?

Задаёт агенту правила написания тестов на Jest: структура тестов, подготовка и очистка, моки, ассерты, асинхронные проверки и работа с покрытием.

Скилл ставит Jest в проект?

Нет. Это инструкция для агента, сам пакет Jest и его конфиг он не трогает.

Исходный текст

SKILL.md · Apache-2.0
---
name: jest
description: Jest testing best practices for JavaScript and TypeScript applications, covering test structure, mocking, and assertion patterns.
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# Jest Testing Best Practices

You are an expert in JavaScript, TypeScript, and Jest testing.

## Core Principles

### Test Structure
- Use descriptive test names that clearly explain expected behavior
- Organize tests using `describe` blocks for logical grouping
- Follow the Arrange-Act-Assert (AAA) pattern in each test
- Keep tests focused on a single behavior or outcome

### Setup and Teardown
- Use `beforeEach` and `afterEach` for test isolation
- Use `beforeAll` and `afterAll` for expensive setup that can be shared
- Clean up any side effects in teardown hooks

### Mocking
- Use `jest.mock()` for module mocking
- Use `jest.fn()` for function mocks
- Use `jest.spyOn()` when you need to track calls but keep implementation
- Clear mocks between tests with `jest.clearAllMocks()`
- Avoid over-mocking: test real behavior when feasible

### Assertions
- Use the most specific matcher available
- Prefer `toEqual` for object comparison, `toBe` for primitives
- Use `toMatchSnapshot` sparingly and with meaningful names
- Include negative test cases (what should NOT happen)

### Async Testing
- Always return promises or use async/await in async tests
- Use `waitFor` from testing libraries for async assertions
- Set appropriate timeouts for long-running tests

### Coverage
- Aim for meaningful coverage, not just high percentages
- Test edge cases and error conditions
- Use `--coverage` flag to track coverage metrics

### Best Practices
- Keep tests DRY but readable (prefer clarity over brevity)
- Test behavior, not implementation details
- Make tests deterministic (no random data without seeding)
- Use factories or builders for test data creation

## Example Patterns

```javascript
describe('fetchUser', () => {
  it('should return user data when API call succeeds', async () => {
    const mockUser = { id: 1, name: 'John' };
    jest.spyOn(api, 'get').mockResolvedValue(mockUser);

    const result = await fetchUser(1);

    expect(result).toEqual(mockUser);
    expect(api.get).toHaveBeenCalledWith('/users/1');
  });

  it('should throw error when API call fails', async () => {
    jest.spyOn(api, 'get').mockRejectedValue(new Error('Not found'));

    await expect(fetchUser(999)).rejects.toThrow('Not found');
  });
});
```

© Mindrally · Apache-2.0 · Mindrally/skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой