/
evo
/
docviz
Обзор
Документация
Войти
/
evo
/
docviz
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
tests/Unit/AppealModelTest.php
104 строки
3 KB
evo
Checkout for tests
08 фев 2026, 09:59
Верифицирован
08 фев 2026, 09:59
ccd7e85
Код
Авторство
О чём код?
<?php namespace Tests\Unit; use App\Models\Appeal; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; class AppealModelTest extends TestCase { use RefreshDatabase; public function test_appeal_fillable_attributes(): void { $fillable = (new Appeal())->getFillable(); $this->assertContains('user_id', $fillable); $this->assertContains('message', $fillable); $this->assertContains('status', $fillable); $this->assertContains('reviewed_by', $fillable); $this->assertContains('admin_comment', $fillable); $this->assertContains('reviewed_at', $fillable); $this->assertContains('taken_by', $fillable); $this->assertContains('taken_at', $fillable); } public function test_appeal_belongs_to_user(): void { $user = User::factory()->create(); $appeal = Appeal::factory()->create(['user_id' => $user->id]); $this->assertInstanceOf(User::class, $appeal->user); $this->assertSame($user->id, $appeal->user->id); } public function test_appeal_belongs_to_reviewer(): void { $reviewer = User::factory()->create(); $appeal = Appeal::factory()->reviewed()->create(['reviewed_by' => $reviewer->id]); $this->assertInstanceOf(User::class, $appeal->reviewer); $this->assertSame($reviewer->id, $appeal->reviewer->id); } public function test_appeal_belongs_to_taken_by(): void { $moderator = User::factory()->create(); $appeal = Appeal::factory()->create([ 'status' => 'in_progress', 'taken_by' => $moderator->id, 'taken_at' => now(), ]); $this->assertInstanceOf(User::class, $appeal->takenBy); $this->assertSame($moderator->id, $appeal->takenBy->id); } public function test_can_submit_new_appeal_returns_false_for_pending(): void { $appeal = Appeal::factory()->pending()->create(); $this->assertFalse($appeal->canSubmitNewAppeal()); } public function test_can_submit_new_appeal_returns_false_for_in_progress(): void { $appeal = Appeal::factory()->inProgress()->create(); $this->assertFalse($appeal->canSubmitNewAppeal()); } public function test_can_submit_new_appeal_returns_false_for_reviewed(): void { $appeal = Appeal::factory()->reviewed()->create(); $this->assertFalse($appeal->canSubmitNewAppeal()); } public function test_can_submit_new_appeal_returns_true_for_approved(): void { $appeal = Appeal::factory()->approved()->create(); $this->assertTrue($appeal->canSubmitNewAppeal()); } public function test_can_submit_new_appeal_returns_false_for_recently_rejected(): void { $appeal = Appeal::factory()->rejected()->create([ 'reviewed_at' => now()->subDays(3), ]); $this->assertFalse($appeal->canSubmitNewAppeal()); } public function test_can_submit_new_appeal_returns_true_for_old_rejected(): void { $appeal = Appeal::factory()->rejected()->create([ 'reviewed_at' => now()->subDays(8), ]); $this->assertTrue($appeal->canSubmitNewAppeal()); } }