fix(bot): замены заявки НЕТ — недозвон не брак (правило владельца 13.07.2026)
В трёх статьях было написано «не берёт трубку → заменим». Это ошибка: замену мы не делаем, и бот честно обещал её клиентам. Тон тонкий, тему сглаживаем: - не обещать замену/возврат («заменим», «вернём деньги») — AnswerGuard::promisesReplacement; - но и не рубить дверью («замена не полагается», «деньги не возвращаются») — тоже режем; - мягко: недозвон — обычное дело; совет СМС → звонок позже → мессенджер; спорный случай на support@liderra.ru, специалист разбирает индивидуально, без обещаний; - не выдумывать срок ответа поддержки (она 24/7). Статьи: zamena-zayavki.md переписана, поправлены kak-rabotat-s-nomerom.md и sdelki.md. Два старых теста охраняли прежнее (неверное) правило — переписаны под новое. Тесты 130/130. Бот НЕ на проде. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -268,14 +268,64 @@ it('«где посмотреть...» — это про портал, а не
|
||||
});
|
||||
|
||||
/**
|
||||
* 🔴 Хвост прогона (D04): «не берёт трубку — значит, не заинтересован, гонять смысла нет».
|
||||
* По zamena-zayavki.md такую заявку МЕНЯЮТ. Совет бота стоит клиенту денег.
|
||||
* 🔴 Правило владельца 13.07.2026: заявку с недозвоном мы НЕ МЕНЯЕМ. Бот не имеет права
|
||||
* обещать замену или возврат денег — за такое обещание потом придёт злой клиент.
|
||||
* Но и грубить нельзя: недозвон — обычное дело, а не брак.
|
||||
*/
|
||||
it('сторож режет совет «не берёт трубку — забей»', function () {
|
||||
it('сторож не даёт обещать замену заявки и возврат денег', function () {
|
||||
$guard = app(AnswerGuard::class);
|
||||
$context = 'Спорный случай разбирает специалист индивидуально.';
|
||||
|
||||
expect($guard->clean('Такую заявку мы заменим. Напишите на support@liderra.ru.', $context))
|
||||
->toBe('Напишите на support@liderra.ru.');
|
||||
|
||||
expect($guard->clean('Мы поменяем этот номер бесплатно. Укажите номер сделки.', $context))
|
||||
->toBe('Укажите номер сделки.');
|
||||
|
||||
expect($guard->clean('Вернём деньги за эту заявку. Укажите номер сделки.', $context))
|
||||
->toBe('Укажите номер сделки.');
|
||||
});
|
||||
|
||||
/**
|
||||
* Правило владельца 13.07.2026: тема тонкая — сглаживать. Бот не обещает замену,
|
||||
* но и не рубит «замена не полагается, деньги не возвращаются»: остаётся совет
|
||||
* и путь к живому специалисту.
|
||||
*/
|
||||
it('сторож убирает жёсткий отказ «замена не полагается / деньги не возвращаются»', function () {
|
||||
$guard = app(AnswerGuard::class);
|
||||
$context = 'Спорный случай разбирает специалист индивидуально.';
|
||||
|
||||
expect($guard->clean('Замена за недозвон не полагается. Отправьте СМС и перезвоните позже.', $context))
|
||||
->toBe('Отправьте СМС и перезвоните позже.');
|
||||
|
||||
expect($guard->clean('Деньги не возвращаются. Напишите на support@liderra.ru.', $context))
|
||||
->toBe('Напишите на support@liderra.ru.');
|
||||
});
|
||||
|
||||
/**
|
||||
* Поддержка работает 24/7 (podderzhka.md). «Ответят в течение рабочего дня» / «за пару
|
||||
* часов» — выдуманный срок, которого мы не обещали.
|
||||
*/
|
||||
it('сторож режет выдуманный срок ответа поддержки', function () {
|
||||
$guard = app(AnswerGuard::class);
|
||||
|
||||
$text = 'Если не берёт трубку — значит, не заинтересован, гонять смысла нет. Напишите в поддержку.';
|
||||
expect($guard->clean($text, 'Заявку можно заменить.'))->toBe('Напишите в поддержку.');
|
||||
$text = 'Обычно специалист отвечает в течение рабочего дня. Напишите на support@liderra.ru.';
|
||||
expect($guard->clean($text, 'Поддержка работает круглосуточно.'))
|
||||
->toBe('Напишите на support@liderra.ru.');
|
||||
});
|
||||
|
||||
it('сторож режет пренебрежительный совет «не берёт трубку — забей»', function () {
|
||||
$guard = app(AnswerGuard::class);
|
||||
|
||||
$text = 'Если не берёт трубку — значит, не заинтересован, гонять смысла нет. Отправьте СМС.';
|
||||
expect($guard->clean($text, 'Недозвон — обычное дело.'))->toBe('Отправьте СМС.');
|
||||
});
|
||||
|
||||
it('сторож НЕ режет добрый совет про недозвон', function () {
|
||||
$guard = app(AnswerGuard::class);
|
||||
|
||||
$text = 'Если человек не берёт трубку, не стоит опускать руки: отправьте СМС и перезвоните позже.';
|
||||
expect($guard->clean($text, 'Недозвон — обычное дело, а не брак.'))->toBe($text);
|
||||
});
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user