82ffa17a24
Тест «денег НЕ двигает» падал только в полном прогоне: ждал ноль проводок по всей таблице, а видел 19. Поодиночке был зелёный - значит виноват не он и не код приёмника. Виновник найден и назван: тридцать файлов рекламной папки идут БЕЗ отката. Откат им не выдаётся и оптом - в tests/Pest.php строка RefreshDatabase закомментирована. Их проводки остаются в базе и достаются соседям. По всей папке Feature таких файлов 96 из 580. Датчик, которым нашёл: после прогона папки смотреть остаток в базе снаружи, через psql. База пересобирается в начале прогона, поэтому всё, что осталось после - вина этого прогона. Три папки, четыре минуты, ровно те же 19 строк, и они видны поимённо: пополнения и заморозки рекламных кампаний. Правка узкая: считаем проводки СВОЕГО клиента. Смысл проверки не изменился - приёмник не имеет права двигать деньги клиента, чьё сообщение он тронул. Приёмка вырезанием: заставил приёмник вернуть деньги этому же клиенту - тест покраснел; убрал - позеленел. Боевой код не тронут, git diff по app/app пуст. Прогон трёх папок: 989 из 989 зелёных, при том что 19 чужих строк в базе так и лежат - тест к соседям больше не чувствителен. Сама грязь НЕ убрана: файлы без отката - отдельная работа, делать её вслепую нельзя, части тестов записанные данные нужны по существу. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>