feat(bot): личный вопрос вошедшего отвечается по карточке, гостю — вход в кабинет
This commit is contained in:
@@ -55,14 +55,16 @@ it('happy path: ответ пишется в журнал (in+out) с latency',
|
||||
->and($out->matched_chunks)->not->toBeNull();
|
||||
});
|
||||
|
||||
it('эскалация: просит телефон в чате, журнал escalated=true', function () {
|
||||
// Правило владельца 12.07.2026: живого оператора в чате нет — бот собирает контакт
|
||||
// сам и отдаёт его поддержке письмом (см. BotContactCaptureTest).
|
||||
it('личный вопрос без карточки фактов: приглашение в кабинет в чате, журнал escalated=false', function () {
|
||||
// Правило изменено 13.07.2026: ProcessChatMessageJob карточку фактов ClientFacts пока
|
||||
// не передаёт (отдельная задача) — с точки зрения BotAnswerService это гость, и на
|
||||
// личный вопрос он получает приглашение войти в кабинет, а не эскалацию к специалисту
|
||||
// (см. BotContactCaptureTest, PersonalAnswersTest).
|
||||
chatMessage('chat-2', 'какой у меня баланс?');
|
||||
|
||||
$out = BotDialog::where('direction', 'out')->firstOrFail();
|
||||
expect($out->message)->toContain('номер телефона')
|
||||
->and($out->escalated)->toBeTrue();
|
||||
expect($out->message)->toContain('личном кабинете')
|
||||
->and($out->escalated)->toBeFalse();
|
||||
});
|
||||
|
||||
it('второе сообщение чата уходит в LLM вместе с историей первого', function () {
|
||||
|
||||
Reference in New Issue
Block a user