feat: GetManga endpoint + tests
This commit is contained in:
parent
e3d380eadd
commit
2f615a4936
63
tests/Feature/Manga/GetMangaTest.php
Normal file
63
tests/Feature/Manga/GetMangaTest.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace App\Tests\Feature\Manga;
|
||||
|
||||
use App\Entity\Manga;
|
||||
use App\Tests\Feature\AbstractApiTestCase;
|
||||
use Zenstruck\Foundry\Test\ResetDatabase;
|
||||
|
||||
class GetMangaTest extends AbstractApiTestCase
|
||||
{
|
||||
use ResetDatabase;
|
||||
|
||||
public function testGetNonExistentManga(): void
|
||||
{
|
||||
// When
|
||||
$client = static::createClient();
|
||||
$response = $client->request('GET', '/api/mangas/999');
|
||||
|
||||
// Then
|
||||
$this->assertResponseStatusCodeSame(404);
|
||||
}
|
||||
|
||||
public function testGetExistingManga(): void
|
||||
{
|
||||
// Given
|
||||
$manga = new Manga();
|
||||
$manga->setTitle('One Piece')
|
||||
->setSlug('one-piece')
|
||||
->setDescription('Test description')
|
||||
->setAuthor('Eiichiro Oda')
|
||||
->setPublicationYear(1997)
|
||||
->setGenres(['action', 'adventure'])
|
||||
->setStatus('ongoing')
|
||||
->setExternalId('external-123')
|
||||
->setImageUrl('http://example.com/image.jpg')
|
||||
->setRating(4.5)
|
||||
->setMonitored(true);
|
||||
|
||||
$entityManager = static::getContainer()->get('doctrine')->getManager();
|
||||
$entityManager->persist($manga);
|
||||
$entityManager->flush();
|
||||
|
||||
// When
|
||||
$client = static::createClient();
|
||||
$response = $client->request('GET', '/api/mangas/' . $manga->getId());
|
||||
|
||||
// Then
|
||||
$this->assertResponseIsSuccessful();
|
||||
$this->assertJsonContains([
|
||||
'id' => (string) $manga->getId(),
|
||||
'title' => 'One Piece',
|
||||
'slug' => 'one-piece',
|
||||
'description' => 'Test description',
|
||||
'author' => 'Eiichiro Oda',
|
||||
'publicationYear' => 1997,
|
||||
'genres' => ['action', 'adventure'],
|
||||
'status' => 'ongoing',
|
||||
'externalId' => 'external-123',
|
||||
'imageUrl' => 'http://example.com/image.jpg',
|
||||
'rating' => 4.5
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user