diff --git a/tests/Feature/Manga/GetMangaListTest.php b/tests/Feature/Manga/GetMangaListTest.php index 7acc48f..ad88458 100644 --- a/tests/Feature/Manga/GetMangaListTest.php +++ b/tests/Feature/Manga/GetMangaListTest.php @@ -3,12 +3,15 @@ namespace App\Tests\Feature\Manga; use App\Entity\Manga; +use App\Factory\ChapterFactory; +use App\Factory\MangaFactory; use App\Tests\Feature\AbstractApiTestCase; +use Zenstruck\Foundry\Test\Factories; use Zenstruck\Foundry\Test\ResetDatabase; class GetMangaListTest extends AbstractApiTestCase { - use ResetDatabase; + use ResetDatabase, Factories; public function testGetEmptyMangaList(): void { @@ -80,6 +83,34 @@ class GetMangaListTest extends AbstractApiTestCase $this->assertEquals('Manga C', $data['items'][2]['title']); } + public function testGetMangaListWithChapters(): void + { + // Given — manga with chapters triggers Doctrine EAGER loading of chapters collection + // (regression: colonne pages_directory doit exister sinon 500) + $manga = MangaFactory::createOne([ + 'title' => 'One Piece', + 'slug' => 'one-piece', + 'imageUrl' => 'https://example.com/image.jpg', + 'thumbnailUrl' => 'https://example.com/thumb.jpg', + ]); + ChapterFactory::createOne([ + 'manga' => $manga, + 'number' => 1.0, + 'title' => 'Romance Dawn', + 'volume' => 1, + 'visible' => true, + ]); + + // When + $client = static::createClient(); + $client->request('GET', '/api/mangas'); + + // Then — doit retourner 200 même avec des chapitres (eager loading OK) + $this->assertResponseIsSuccessful(); + $data = $client->getResponse()->toArray(); + $this->assertEquals(1, $data['total']); + } + private function createMangas(int $count): void { for ($i = 1; $i <= $count; $i++) {