/
evo
/
docviz
Обзор
Документация
Войти
/
evo
/
docviz
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
tests/Unit/DocPageModelTest.php
94 строки
4 KB
evo
Checkout for tests
08 фев 2026, 09:59
Верифицирован
08 фев 2026, 09:59
ccd7e85
Код
Авторство
О чём код?
<?php namespace Tests\Unit; use App\Models\DocCategory; use App\Models\DocPage; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; class DocPageModelTest extends TestCase { use RefreshDatabase; public function test_doc_page_fillable_attributes(): void { $fillable = (new DocPage())->getFillable(); $this->assertContains('category_id', $fillable); $this->assertContains('title', $fillable); $this->assertContains('slug', $fillable); $this->assertContains('content', $fillable); $this->assertContains('order', $fillable); $this->assertContains('is_published', $fillable); $this->assertContains('created_by', $fillable); } public function test_doc_page_uses_slug_as_route_key(): void { $page = DocPage::factory()->create(); $this->assertSame('slug', $page->getRouteKeyName()); } public function test_doc_page_belongs_to_category(): void { $category = DocCategory::factory()->create(); $page = DocPage::factory()->create(['category_id' => $category->id]); $this->assertInstanceOf(DocCategory::class, $page->category); $this->assertSame($category->id, $page->category->id); } public function test_doc_page_belongs_to_creator(): void { $user = User::factory()->create(); $page = DocPage::factory()->create(['created_by' => $user->id]); $this->assertInstanceOf(User::class, $page->creator); $this->assertSame($user->id, $page->creator->id); } public function test_doc_page_get_next_page(): void { $category = DocCategory::factory()->create(); $page1 = DocPage::factory()->create(['category_id' => $category->id, 'order' => 1, 'is_published' => true]); $page2 = DocPage::factory()->create(['category_id' => $category->id, 'order' => 2, 'is_published' => true]); $page3 = DocPage::factory()->create(['category_id' => $category->id, 'order' => 3, 'is_published' => true]); $this->assertSame($page2->id, $page1->getNextPage()?->id); $this->assertSame($page3->id, $page2->getNextPage()?->id); $this->assertNull($page3->getNextPage()); } public function test_doc_page_get_previous_page(): void { $category = DocCategory::factory()->create(); $page1 = DocPage::factory()->create(['category_id' => $category->id, 'order' => 1, 'is_published' => true]); $page2 = DocPage::factory()->create(['category_id' => $category->id, 'order' => 2, 'is_published' => true]); $page3 = DocPage::factory()->create(['category_id' => $category->id, 'order' => 3, 'is_published' => true]); $this->assertNull($page1->getPreviousPage()); $this->assertSame($page1->id, $page2->getPreviousPage()?->id); $this->assertSame($page2->id, $page3->getPreviousPage()?->id); } public function test_doc_page_scope_published(): void { DocPage::factory()->count(2)->create(['is_published' => true]); DocPage::factory()->count(3)->create(['is_published' => false]); $this->assertCount(2, DocPage::published()->get()); } public function test_doc_page_get_next_ignores_unpublished_pages(): void { $category = DocCategory::factory()->create(); $page1 = DocPage::factory()->create(['category_id' => $category->id, 'order' => 1, 'is_published' => true]); DocPage::factory()->create(['category_id' => $category->id, 'order' => 2, 'is_published' => false]); $page3 = DocPage::factory()->create(['category_id' => $category->id, 'order' => 3, 'is_published' => true]); $this->assertSame($page3->id, $page1->getNextPage()?->id); } }