# vitest-unit-testing-cursorrules-prompt-file

Правило задаёт Cursor поведение эксперта по Vitest и TypeScript: пишет юнит-тесты на бизнес-логику и утилиты, мокает зависимости через vi.mock.

- правило · `type=rule` · Cursor · ★ 41011
- Автор: PatrickJS
- Лицензия: CC0-1.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/PatrickJS/awesome-cursorrules/tree/HEAD/rules/vitest-unit-testing-cursorrules-prompt-file.mdc
- Обновлён: 2026-05-30
- HTML: https://affpapa.org/nevibecode/rules/vitest-unit-testing-cursorrules-prompt-file

## Что делает

Правило включается в проект и подсказывает агенту, как писать тесты. Сначала он проверяет, есть ли TypeScript — по `tsconfig.json` или зависимостям в `package.json`, — и подстраивает синтаксис под результат.

Дальше работа идёт по списку: тестировать бизнес-логику и утилиты, а не всё подряд; мокать API и внешние модули через `vi.mock` до импортов; прогонять валидные входы, невалидные и краевые случаи. Имена тестов должны описывать ожидаемое поведение, связанные тесты группируются в `describe`. Отдельно оговорены `undefined`, несовпадение типов и неожиданные входы. Количество тестов на файл ограничено 3–5 — это совет автора правила, а не жёсткий лимит инструмента.

Внутри два примера: на JavaScript с `formatDate` и на TypeScript с `getForecast`, моком `weatherService` и интерфейсами `WeatherData` и `Forecast`. Оба показывают порядок «сначала мок, потом импорт модуля». Если в проекте уже есть свои конвенции тестирования, правило велит следовать им, поэтому конфликт с существующим стилем возможен — это повод проверить, что оно не переписывает ваши договорённости.

## Установка

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

**Вручную: положить файлы**
- Файл: `.cursor/rules/vitest-unit-testing-cursorrules-prompt-file.mdc` — Во frontmatter: description, globs, alwaysApply

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/vitest-unit-testing-cursorrules-prompt-file.md` — Поле paths во frontmatter ограничивает файлы: globs из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### GitHub Copilot

**Вручную: положить файлы**
- Файл: `.github/instructions/vitest-unit-testing-cursorrules-prompt-file.instructions.md` — Поле applyTo задаёт, к каким файлам применять: globs из источника → applyTo

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/vitest-unit-testing-cursorrules-prompt-file.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/vitest-unit-testing-cursorrules-prompt-file.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/PatrickJS/awesome-cursorrules/tree/HEAD/rules/vitest-unit-testing-cursorrules-prompt-file.mdc

## Когда брать
- написать юнит-тесты на бизнес-логику и утилиты
- замокать API и внешние модули до импортов через `vi.mock`
- покрыть невалидные входы и краевые случаи
- сгруппировать связанные тесты в `describe` с понятными именами
- удержать число тестов на файл в разумных пределах

## Примеры запросов агенту
- Напиши юнит-тесты на `formatDate` по правилам Vitest
- Добавь тесты на `getForecast` с моком `weatherService`
- Покрой краевые случаи для этой утилиты, зависимости замокай

## Похожие
- [vitest-skill](https://affpapa.org/nevibecode/skills/vitest-skill.md) — скилл · 448 установок
- [vitest-testing](https://affpapa.org/nevibecode/skills/vitest-testing.md) — скилл · 1200 установок
- [typescript-unit-testing](https://affpapa.org/nevibecode/skills/typescript-unit-testing.md) — скилл · 496 установок
- [vitest](https://affpapa.org/nevibecode/skills/pproenca-vitest.md) — скилл · 6100 установок
- [javascript-testing-patterns](https://affpapa.org/nevibecode/skills/javascript-testing-patterns.md) — скилл · 20472 установки
- [unit-testing](https://affpapa.org/nevibecode/skills/unit-testing.md) — скилл · 1100 установок

Из того же набора: [patrickjs/awesome-cursorrules](https://affpapa.org/nevibecode/by/patrickjs/awesome-cursorrules.md) — 68 карточек

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

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