mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-09-13 16:23:08 +00:00
Дополнение к PR #548 при мерже. Код менять не пришлось — добавлены три теста. Решение «это 409» автор вынес в утилиту и покрыл хорошо, а вот сама привязка onError к мутациям осталась непокрытой — при том, что её отсутствие и есть исходный баг: форма молчала, человек жал «Отправить» повторно. Проверил мутациями: снятие onError у createMutation, снятие onError у replyMutation и удаление обновления списка тикетов в ветке 409 набор не роняли. Окружения для рендера компонентов в репозитории нет (vitest настроен на node, без jsdom), поэтому закрепил структурно, по исходнику — приём тот же, что уже используется в бот-репозитории. Крудовато, но ловит ровно ту регрессию, ради которой PR и написан. Остальное проверено, правок не потребовалось. Несущее допущение верно: 409 в app/cabinet/routes/tickets.py встречается ровно один раз и именно про открытый тикет, так что матч по статусу вместо текста detail — правильный выбор (текст приходит только по-английски, а кабинет и бот версионируются раздельно). Переименование rateLimitError → formError сквозное, хвостов не осталось; формы create и reply взаимоисключающие, состояние сбрасывается на всех переходах. Ключи support.errors.* есть во всех четырёх локалях. Шесть предупреждений biome в Support.tsx — предсуществующие, столько же на чистом dev.