# typescript-unit-testing

Скилл для юнит-тестов TypeScript и NestJS: Jest, моки через @golevelup/ts-jest и структура AAA. Пригодится, когда пишете или чините .spec.ts.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 496 установок · ★ 19
- Автор: bmad-labs
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/bmad-labs/skills/tree/HEAD/skills/typescript-unit-testing/SKILL.md
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/skills/typescript-unit-testing

## Что делает

Скилл закрывает весь цикл работы с юнит-тестами в TypeScript и NestJS. Внутри шесть воркфлоу: настройка инфраструктуры, написание тестов, ревью существующих, запуск, отладка падающих и оптимизация медленных. Агент сначала определяет, что вам нужно, читает файл нужного воркфлоу и идёт по шагам, подгружая справочники по ходу.

База знаний разложена по папкам: общие правила и паттерны утверждений, тестирование сервисов, контроллеров, гардов, интерцепторов, пайпов и фильтров в NestJS, моки через `DeepMocked` и `createMock`, фабрики тестовых данных. Отдельно описаны репозитории на `mongodb-memory-server` и `pg-mem`, обработчики Kafka и работа с Redis.

Есть неочевидная деталь: скилл требует перенаправлять вывод тестов в временные файлы, а не в консоль, потому что подробные логи забивают контекст агента. Для этого заводится переменная `UT_SESSION` с уникальным идентификатором сессии, чтобы параллельные агенты не перетирали логи друг друга. Если у вас уже настроен Jest иначе, это повод проверить, не начнёт ли агент переписывать конфиг под себя.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add bmad-labs/skills --skill typescript-unit-testing -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/typescript-unit-testing/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/typescript-unit-testing/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add bmad-labs/skills --skill typescript-unit-testing -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/typescript-unit-testing/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add bmad-labs/skills --skill typescript-unit-testing -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/typescript-unit-testing/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install bmad-labs/skills typescript-unit-testing
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/typescript-unit-testing/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add bmad-labs/skills --skill typescript-unit-testing -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/bmad-labs/skills --path skills/typescript-unit-testing
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/typescript-unit-testing/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add bmad-labs/skills --skill typescript-unit-testing -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/bmad-labs/skills/tree/HEAD/skills/typescript-unit-testing/SKILL.md

## Когда брать
- поднять Jest в проекте, где тестов ещё нет
- написать тесты на сервис или контроллер NestJS
- замокать зависимости через `createMock`
- разобраться, почему тест падает или ведёт себя нестабильно
- убрать открытые хендлы, из-за которых Jest не завершается

## Примеры запросов агенту
- Настрой Jest в этом проекте и добавь тесты на `UserService`
- Напиши юнит-тесты для этого контроллера по структуре AAA
- Проверь качество тестов в `src/orders` и найди открытые хендлы

## Похожие
- [testing-patterns](https://affpapa.org/nevibecode/skills/testing-patterns.md) — скилл · 365 установок
- [vitest-unit-testing-cursorrules-prompt-file](https://affpapa.org/nevibecode/rules/vitest-unit-testing-cursorrules-prompt-file.md) — правило · ★ 41011
- [writing-tests](https://affpapa.org/nevibecode/skills/writing-tests.md) — скилл · 499 установок
- [appbuilder-testing](https://affpapa.org/nevibecode/skills/appbuilder-testing.md) — скилл · 714 установок
- [Python Unit Test Generator — Comprehensive, Coverage-Mapped & Production-Ready](https://affpapa.org/nevibecode/prompts/python-unit-test-generator-comprehensive-coverage-mapped-production-ready.md) — промпт · ★ 174597
- [131-java-testing-unit-testing](https://affpapa.org/nevibecode/skills/131-java-testing-unit-testing.md) — скилл · 449 установок

Из того же набора: [bmad-labs/skills](https://affpapa.org/nevibecode/by/bmad-labs/skills.md) — 3 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
