К основному содержанию
скилл GitHub Copilot официальный · GitHub

javascript-typescript-jest — скилл для GitHub Copilot: тесты на Jest

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

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

Что делает javascript-typescript-jest

Скилл предлагает размещать тесты рядом с проверяемым кодом или в __tests__, называть файлы с суффиксом .test.ts или .test.js и группировать проверки через describe и it. Он также охватывает Jest-матчеры, снапшот-тесты и проверку исключений.

Для изоляции тестов описаны jest.mock() и jest.spyOn(), настройка поведения через mockImplementation() и mockReturnValue(), сброс моков в afterEach. Для промисов рекомендуются async/await или возврат промиса, а также матчеры resolves и rejects. При медленных тестах предлагается настроить jest.setTimeout().

Для React скилл советует React Testing Library вместо Enzyme и проверки доступности через роли, подписи или текст. Он задаёт практические ориентиры, но не заменяет настройку Jest в проекте. Ставьте его, если агенту нужны конкретные подсказки по Jest-тестам; для проектов без Jest он не по адресу.

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

  • разложить тесты по файлам рядом с исходным кодом
  • изолировать тест от API или базы данных с помощью моков
  • проверить асинхронный код и обработку ошибок
  • выбрать запросы к React-компонентам по доступным ролям и подписям
  • сделать снапшоты небольшими и удобными для проверки

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

  • Напиши Jest-тесты для этой функции и используй описательную структуру `describe` и `it`.
  • Изолируй внешний API через `jest.mock()` и сбрасывай моки после каждого теста.
  • Проверь поведение React-компонента по ролям доступности с React Testing Library.

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

1Через Skills CLI (Vercel)

npx skills add github/awesome-copilot --skill javascript-typescript-jest -a claude-code

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

~/.claude/skills/javascript-typescript-jest/SKILL.md

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

Похожие

frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. Claude Code Claude.ai 1 025 790установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. Claude Code Claude.ai 414 180установок grill-me Matt Pocock Скилл проводит жёсткое интервью по плану или дизайну, чтобы найти пробелы и уточнить решения. Подойдёт перед началом разработки. Claude Code 1 424 476установок grill-with-docs Matt Pocock Скилл проводит жёсткое интервью по плану или дизайну и по ходу создаёт ADR и глоссарий. Подойдёт перед началом сложной разработки. Claude Code 1 219 756установок improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. Claude Code 1 163 035установок tdd Matt Pocock Скилл управляет циклом красный-зелёный в TDD: проверяет, что тесты пишутся до кода, держит их на уровне публичных интерфейсов и не завязывает на внутреннюю структуру. Claude Code 1 141 062установок

Вопросы о javascript-typescript-jest

Как установить javascript-typescript-jest в GitHub Copilot?

Выполните npx skills add github/awesome-copilot --skill javascript-typescript-jest или gh skill install github/awesome-copilot javascript-typescript-jest.

Что делает javascript-typescript-jest?

Он даёт рекомендации по структуре тестов на JavaScript и TypeScript с Jest, мокам, асинхронным проверкам и матчерам.

Что скилл советует для тестирования React-компонентов?

Использовать React Testing Library вместо Enzyme, проверять поведение и доступность, а элементы искать по ролям, подписям или тексту. Для взаимодействий он рекомендует userEvent вместо fireEvent.

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

SKILL.md · MIT
---
name: javascript-typescript-jest
description: 'Best practices for writing JavaScript/TypeScript tests using Jest, including mocking strategies, test structure, and common patterns.'
---

### Test Structure
- Name test files with `.test.ts` or `.test.js` suffix
- Place test files next to the code they test or in a dedicated `__tests__` directory
- Use descriptive test names that explain the expected behavior
- Use nested describe blocks to organize related tests
- Follow the pattern: `describe('Component/Function/Class', () => { it('should do something', () => {}) })`

### Effective Mocking
- Mock external dependencies (APIs, databases, etc.) to isolate your tests
- Use `jest.mock()` for module-level mocks
- Use `jest.spyOn()` for specific function mocks
- Use `mockImplementation()` or `mockReturnValue()` to define mock behavior
- Reset mocks between tests with `jest.resetAllMocks()` in `afterEach`

### Testing Async Code
- Always return promises or use async/await syntax in tests
- Use `resolves`/`rejects` matchers for promises
- Set appropriate timeouts for slow tests with `jest.setTimeout()`

### Snapshot Testing
- Use snapshot tests for UI components or complex objects that change infrequently
- Keep snapshots small and focused
- Review snapshot changes carefully before committing

### Testing React Components
- Use React Testing Library over Enzyme for testing components
- Test user behavior and component accessibility
- Query elements by accessibility roles, labels, or text content
- Use `userEvent` over `fireEvent` for more realistic user interactions

## Common Jest Matchers
- Basic: `expect(value).toBe(expected)`, `expect(value).toEqual(expected)`
- Truthiness: `expect(value).toBeTruthy()`, `expect(value).toBeFalsy()`
- Numbers: `expect(value).toBeGreaterThan(3)`, `expect(value).toBeLessThanOrEqual(3)`
- Strings: `expect(value).toMatch(/pattern/)`, `expect(value).toContain('substring')`
- Arrays: `expect(array).toContain(item)`, `expect(array).toHaveLength(3)`
- Objects: `expect(object).toHaveProperty('key', value)`
- Exceptions: `expect(fn).toThrow()`, `expect(fn).toThrow(Error)`
- Mock functions: `expect(mockFn).toHaveBeenCalled()`, `expect(mockFn).toHaveBeenCalledWith(arg1, arg2)`

© github · MIT · github/awesome-copilot

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

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

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