koel/tests/Feature/AlbumTest.php

56 lines
1.1 KiB
PHP
Raw Normal View History

2022-07-26 22:08:31 +02:00
<?php
2023-06-05 23:46:41 +02:00
namespace Tests\Feature;
2022-07-26 22:08:31 +02:00
use App\Models\Album;
2024-01-09 19:34:40 +01:00
use Tests\TestCase;
2022-07-26 22:08:31 +02:00
class AlbumTest extends TestCase
{
public const JSON_STRUCTURE = [
2022-07-26 22:08:31 +02:00
'type',
'id',
'name',
'artist_id',
'artist_name',
'cover',
'created_at',
];
private const JSON_COLLECTION_STRUCTURE = [
'data' => [
'*' => self::JSON_STRUCTURE,
],
2022-07-26 22:19:58 +02:00
'links' => [
'first',
'last',
'prev',
'next',
],
'meta' => [
'current_page',
'from',
'path',
'per_page',
'to',
],
2022-07-26 22:08:31 +02:00
];
public function testIndex(): void
{
Album::factory(10)->create();
2022-07-27 10:49:33 +02:00
$this->getAs('api/albums')
2022-07-26 22:08:31 +02:00
->assertJsonStructure(self::JSON_COLLECTION_STRUCTURE);
}
public function testShow(): void
{
/** @var Album $album */
$album = Album::factory()->create();
2022-07-27 10:49:33 +02:00
$this->getAs('api/albums/' . $album->id)
2022-07-26 22:08:31 +02:00
->assertJsonStructure(self::JSON_STRUCTURE);
}
}