Промты для отладки и тестирования JS/TS: 14 проверенных сценариев, которые экономят часы

Отладка JavaScript и TypeScript может съесть весь день. Особенно когда баг плавающий, стектрейс указывает не туда, а тесты падают через раз. Я собрал 14 промтов, которые превращают ChatGPT в напарника по отладке, тестированию и поиску утечек памяти. Каждый промт — с примером входа, ожидаемым результатом и ситуацией, где он реально спасает.

Все промты проверены на реальных проектах: от небольших Express-сервисов до React-приложений с тысячами компонентов. Вы можете копировать их и сразу вставлять свой код.

1. Воспроизведение бага по описанию

Когда баг воспроизводится только у пользователей, а у вас — нет. Промт помогает сгенерировать минимальный воспроизводимый пример.

Промт:
"У меня есть баг в JavaScript: [описание]. Я не могу воспроизвести его локально. Предложи минимальный код, который гарантированно воспроизведёт проблему, и объясни, какие условия для этого нужны."

Пример:
Пользователи жаловались, что форма отправляется дважды при быстром двойном клике. Промт выдал пример с асинхронным обработчиком и отсутствием блокировки кнопки. Мы добавили disabled на время запроса — баг ушёл.

2. Анализ стектрейса с контекстом

Стектрейс из минифицированного кода бесполезен. Промт помогает восстановить логику.

Промт:
"Вот стектрейс ошибки: [стектрейс]. Вот соответствующий код: [фрагмент]. Объясни, что могло пойти не так, и предложи исправление. Учти, что код может быть минифицирован."

Пример:
Ошибка TypeError: Cannot read property 'map' of undefined возникала в проде, но не в dev. Промт подсказал, что API может возвращать null вместо массива. Добавили проверку Array.isArray(data) ? data : [].

3. Генерация unit-тестов на Jest для функции

Пишете тесты после кода? Промт создаст каркас.

Промт:
"Напиши unit-тесты на Jest для этой функции: [код]. Покрой основные сценарии, граничные случаи и ошибки. Используй describe, it, expect."

Пример:
Функция calculateDiscount(price, userType) возвращала скидку. Тесты выявили, что при userType = 'guest' скидка не должна применяться, но код её давал. Исправили.

4. Поиск утечек памяти в Node.js

Утечки в долгоживущих процессах — боль. Промт помогает проанализировать heap snapshot.

Промт:
"У меня есть heap snapshot из Node.js. Вот вывод --inspect и подозрительные объекты: [данные]. Как найти утечку? Предложи шаги и код для диагностики."

Пример:
Сервис падал через сутки. Промт указал на глобальный массив, который накапливал запросы. Заменили на WeakMap — память стабилизировалась.

5. Написание e2e-теста на Playwright

E2E-тесты сложно поддерживать. Промт генерирует сценарий по шагам.

Промт:
"Создай e2e-тест на Playwright для сценария: [описание шагов]. Используй test, page.goto, page.click, expect."

Пример:
Тест на оформление заказа: логин, добавление товара, оплата. Промт сгенерировал код с ожиданиями и проверками. Мы добавили data-testid для стабильности.

6. Отладка асинхронного кода

Промисы и async/await часто приводят к неожиданным результатам.

Промт:
"Этот асинхронный код работает не так, как ожидается: [код]. Опиши, что происходит на каждом шаге, и предложи исправление."

Пример:
Promise.all не ждал все промисы из-за отсутствия await внутри map. Промт показал, что нужно await Promise.all(array.map(async ...)).

7. Рефакторинг тестов на Vitest

Переход с Jest на Vitest? Промт поможет.

Промт:
"Перепиши эти тесты с Jest на Vitest: [код]. Учти различия в API и настройках."

Пример:
Заменили jest.mock на vi.mock, jest.fn на vi.fn. Тесты заработали без изменений логики.

8. Генерация моков для API

Тестирование с реальными API — медленно и нестабильно.

Промт:
"Создай мок-сервер на Express для этих эндпоинтов: [список]. Возвращай тестовые данные в формате JSON."

Пример:
Мок для /users и /orders позволил тестировать фронтенд без бэкенда. Сэкономили часы на ожидании.

9. Поиск причины флаки-тестов

Тесты, которые падают через раз, — кошмар.

Промт:
"Этот тест иногда падает: [код]. Проанализируй возможные причины (тайминги, порядок, состояние) и предложи исправления."

Пример:
Тест зависел от времени. Промт предложил использовать vi.useFakeTimers() и мокировать Date.now.

10. Оптимизация производительности с профилировкой

Медленный код? Промт поможет найти узкое место.

Промт:
"Вот профиль производительности из Chrome DevTools: [данные]. Где узкое место? Предложи оптимизации."

Пример:
Рендер списка из 1000 элементов занимал 2 секунды. Промт указал на отсутствие виртуализации. Подключили react-window — стало 200 мс.

11. Написание тестов для React-компонентов

Тестирование UI — отдельное искусство.

Промт:
"Напиши тесты на React Testing Library для компонента: [код]. Проверь рендер, клики и состояние."

Пример:
Тест на кнопку «Добавить в корзину» выявил, что обработчик не вызывается при disabled. Исправили условие.

12. Отладка TypeScript-типов

Сложные типы могут запутать.

Промт:
"Почему этот код вызывает ошибку TypeScript: [код]? Объясни и предложи исправление типа."

Пример:
Ошибка Type 'string' is not assignable to type 'never' в switch. Промт показал, что не все случаи покрыты. Добавили default.

13. Генерация тестовых данных (fixtures)

Ручное создание данных утомляет.

Промт:
"Сгенерируй массив тестовых объектов для сущности 'Product' с полями: id, name, price, category. 10 штук."

Пример:
Фикстуры для тестов корзины. Промт создал JSON с реалистичными названиями и ценами.

14. Интеграция с CI/CD для автотестов

Чтобы тесты запускались автоматически.

Промт:
"Настрой GitHub Actions для запуска тестов на Jest при пуше в main. Вот package.json: [код]."

Пример:
Workflow с шагами npm install, npm test. Тесты стали запускаться на каждый коммит.

Эти промты — не серебряная пуля, но они экономят время и снижают количество ошибок. Главное — адаптировать их под свой контекст и не бояться экспериментировать. Попробуйте хотя бы три из них на следующем баге — и вы удивитесь, насколько быстрее пойдёт отладка.

Если у вас есть свои любимые промты для отладки — делитесь в комментариях. А если хотите глубже прокачать навыки работы с AI в разработке, загляните в наш блог — там ещё много практических материалов.

← Все статьи

Комментарии

Читайте также

Курс по автоматизации бизнеса с ИИ: Преобразите свой бизнес с помощью эффективности на основе ИИ в 2026 году

30 июня 2026

Как подключить Docker / Docker Compose к AI-агенту ASI Biont: автоматизация DevOps через естественный язык

7 августа 2026

Проектирование систем — Архитектурное проектирование: От сокращателя URL до масштабируемых систем

13 сентября 2026

Как подключить Twitter/X к ASI Biont: AI-агент, который управляет вашим аккаунтом без кода

28 июня 2026

API Design (REST, GraphQL, gRPC): как не запутаться в протоколах и построить идеальный API в 2026 году

15 июля 2026

T5Gemma: Новая эра encoder-decoder моделей от Google DeepMind — что это значит для AI в 2026 году?

21 июня 2026

NVIDIA AI Supercomputer в Школе последипломного образования ВМС США: как Vibe Coding меняет оборонные технологии и что это значит для бизнеса

23 июля 2026

Промты для LeetCode: как пройти coding-секцию в FAANG и не выгореть за месяц

30 сентября 2026

Anthropic: как язык программирования меняет "личность" Claude — результаты эксперимента

19 июля 2026