/
evo
/
docviz
Обзор
Документация
Войти
/
evo
/
docviz
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
tests/Unit/MessageModelTest.php
87 строк
2 KB
evo
Checkout for tests
08 фев 2026, 09:59
Верифицирован
08 фев 2026, 09:59
ccd7e85
Код
Авторство
О чём код?
<?php namespace Tests\Unit; use App\Models\User; use App\Modules\Messaging\Models\Message; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; class MessageModelTest extends TestCase { use RefreshDatabase; public function test_message_fillable_attributes(): void { $fillable = (new Message())->getFillable(); $this->assertContains('from_user_id', $fillable); $this->assertContains('to_user_id', $fillable); $this->assertContains('content', $fillable); $this->assertContains('read_at', $fillable); } public function test_message_belongs_to_from_user(): void { $fromUser = User::factory()->create(); $toUser = User::factory()->create(); $message = Message::factory()->create([ 'from_user_id' => $fromUser->id, 'to_user_id' => $toUser->id, ]); $this->assertInstanceOf(User::class, $message->from); $this->assertSame($fromUser->id, $message->from->id); } public function test_message_belongs_to_to_user(): void { $fromUser = User::factory()->create(); $toUser = User::factory()->create(); $message = Message::factory()->create([ 'from_user_id' => $fromUser->id, 'to_user_id' => $toUser->id, ]); $this->assertInstanceOf(User::class, $message->to); $this->assertSame($toUser->id, $message->to->id); } public function test_message_is_read_returns_false_when_unread(): void { $message = Message::factory()->create(['read_at' => null]); $this->assertFalse($message->isRead()); } public function test_message_is_read_returns_true_when_read(): void { $message = Message::factory()->read()->create(); $this->assertTrue($message->isRead()); } public function test_message_mark_as_read(): void { $message = Message::factory()->create(['read_at' => null]); $this->assertFalse($message->isRead()); $message->markAsRead(); $message->refresh(); $this->assertTrue($message->isRead()); $this->assertNotNull($message->read_at); } public function test_message_mark_as_read_does_not_update_if_already_read(): void { $readAt = now()->subHour(); $message = Message::factory()->create(['read_at' => $readAt]); $message->markAsRead(); $message->refresh(); $this->assertSame($readAt->toDateTimeString(), $message->read_at->toDateTimeString()); } }