feat/chapter-entity-image-storage #1
@@ -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++) {
|
||||
|
||||
Reference in New Issue
Block a user