feat/chapter-entity-image-storage #1
@@ -3,12 +3,15 @@
|
|||||||
namespace App\Tests\Feature\Manga;
|
namespace App\Tests\Feature\Manga;
|
||||||
|
|
||||||
use App\Entity\Manga;
|
use App\Entity\Manga;
|
||||||
|
use App\Factory\ChapterFactory;
|
||||||
|
use App\Factory\MangaFactory;
|
||||||
use App\Tests\Feature\AbstractApiTestCase;
|
use App\Tests\Feature\AbstractApiTestCase;
|
||||||
|
use Zenstruck\Foundry\Test\Factories;
|
||||||
use Zenstruck\Foundry\Test\ResetDatabase;
|
use Zenstruck\Foundry\Test\ResetDatabase;
|
||||||
|
|
||||||
class GetMangaListTest extends AbstractApiTestCase
|
class GetMangaListTest extends AbstractApiTestCase
|
||||||
{
|
{
|
||||||
use ResetDatabase;
|
use ResetDatabase, Factories;
|
||||||
|
|
||||||
public function testGetEmptyMangaList(): void
|
public function testGetEmptyMangaList(): void
|
||||||
{
|
{
|
||||||
@@ -80,6 +83,34 @@ class GetMangaListTest extends AbstractApiTestCase
|
|||||||
$this->assertEquals('Manga C', $data['items'][2]['title']);
|
$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
|
private function createMangas(int $count): void
|
||||||
{
|
{
|
||||||
for ($i = 1; $i <= $count; $i++) {
|
for ($i = 1; $i <= $count; $i++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user