postJson('/api/chat/message', [ 'chat_id' => $chat, 'text' => 'сколько стоит заявка?', ]); $response->assertOk(); $id = $response->json('message_id'); expect($id)->toBeInt(); $row = BotDialog::query()->find($id); expect($row->chat_id)->toBe($chat) ->and($row->direction)->toBe('in') ->and($row->message)->toBe('сколько стоит заявка?') ->and($row->source)->toBe('landing'); // гость → лендинг Queue::assertPushed(ProcessChatMessageJob::class); }); it('не принимает слишком длинное сообщение', function () { $this->postJson('/api/chat/message', [ 'chat_id' => str_repeat('b', 32), 'text' => str_repeat('я', 1001), ])->assertStatus(422); }); it('не принимает кривой номер разговора', function () { $this->postJson('/api/chat/message', [ 'chat_id' => 'не-номер', 'text' => 'привет', ])->assertStatus(422); });