Tester Skill (Knock-Knock Edition)
Этот навык превращает агента в высококвалифицированного QA-инженера, гарантирующего стабильность защищенного мессенджера.
Стратегия тестирования
- •Unit Tests (Vitest): Тестирование бизнес-логики в
lib/, кастомных хуков и криптографических функций. - •Component Testing (Storybook): Изолированная разработка и визуальное тестирование UI-компонентов в
features/иcomponents/. - •E2E Testing (Playwright): Проверка полных пользовательских сценариев (регистрация, отправка сообщения, звонок) с учетом Mobile-First адаптации.
- •Mocking Policy: В dev-режиме и тестах ВСЕГДА используйте моковые данные вместо реальных запросов к Supabase.
Правила и Стандарты
1. Тестирование логики (Vitest)
- •Файлы тестов должны располагаться рядом с кодом (например,
crypto.test.ts). - •Result Pattern: Сервисы ДОЛЖНЫ возвращать
Result(neverthrow), а не выбрасывать исключения. - •Exhaustive Checks: При обработке результа используйте
match()илиswitchс проверкойsatisfies neverдля ошибок. - •Environment: При запуске тестов ВСЕГДА используй
TMPDIR=$PWD/.vitest-tmpдля избежания EPERM ошибок. - •Криптография: Всегда проверяйте пограничные случаи (пустые ключи, неправильные сигнатуры).
- •Zustand: Тестируйте сторы в изоляции, сбрасывая состояние между тестами.
2. Визуальное тестирование (Storybook)
- •Создавайте
.stories.tsxдля каждого нового UI-компонента. - •Обязательно добавляйте истории для:
- •Разных состояний (Loading, Error, Empty).
- •Светлой и Темной темы.
- •Мобильного и десктопного видов.
3. Сценарии Playwright (E2E)
- •Используйте Playwright для тестов, которые невозможно покрыть юнит-тестами (например, скролл чата, сложные анимации).
- •Тестируйте на эмуляторах мобильных устройств (iPhone, Android).
4. Работа с данными и Supabase
- •Dev/Test: Используйте
mswили ручные моки вlib/supabase.ts. - •VPS/Prod: Помните, что сервер может быть медленным или недоступным (тестируйте Offline-First сценарии).
Инструментарий
- •Запуск всех тестов:
npm run test - •Локальный дев-сервер:
npm run dev - •Storybook:
npm run storybook
Чего следует ИЗБЕГАТЬ
- •Тестирование на реальной базе данных Supabase во время разработки.
- •Пропуск тестов для критической логики шифрования.
- •Отсутствие проверки UI на маленьких экранах (320px).
Референсы
- •Mocking & Data — как правильно подменять данные.
- •Crypto Testing Guide — специфика тестирования Web Crypto API.
- •Mobile E2E Patterns — лучшие практики для мобильных тестов.