koel/tests/Feature/ExcerptSearchTest.php

44 lines
1.3 KiB
PHP
Raw Normal View History

<?php
2023-06-05 21:46:41 +00:00
namespace Tests\Feature;
use App\Http\Resources\AlbumResource;
use App\Http\Resources\ArtistResource;
use App\Http\Resources\PodcastResource;
use App\Http\Resources\SongResource;
use App\Models\Album;
use App\Models\Artist;
use App\Models\Podcast;
use App\Models\Song;
2024-01-09 18:34:40 +00:00
use Tests\TestCase;
use function Tests\create_user;
class ExcerptSearchTest extends TestCase
{
public function testSearch(): void
{
Song::factory()->create(['title' => 'A Foo Song']);
Song::factory(6)->create();
Artist::factory()->create(['name' => 'Foo Fighters']);
Artist::factory(3)->create();
Album::factory()->create(['name' => 'Foo Number Five']);
Album::factory(4)->create();
$user = create_user();
2024-07-07 13:29:37 +00:00
/** @var Podcast $podcast */
$podcast = Podcast::factory()->create(['title' => 'Foo Podcast']);
$user->subscribeToPodcast($podcast);
$this->getAs('api/search?q=foo', $user)
->assertJsonStructure([
'songs' => ['*' => SongResource::JSON_STRUCTURE],
'podcasts' => ['*' => PodcastResource::JSON_STRUCTURE],
'artists' => ['*' => ArtistResource::JSON_STRUCTURE],
'albums' => ['*' => AlbumResource::JSON_STRUCTURE],
]);
}
}