From 67477c654630fbaf6e0bb45fdee634bf89f66dde Mon Sep 17 00:00:00 2001 From: Daniel Karbach Date: Fri, 12 Dec 2025 14:30:53 +0100 Subject: [PATCH] add episode api test --- app/Models/Channel.php | 8 +++ app/Models/Event.php | 6 ++ tests/Feature/EpisodesTest.php | 115 +++++++++++++++++++++++++++++++++ tests/Feature/ExampleTest.php | 21 ------ 4 files changed, 129 insertions(+), 21 deletions(-) create mode 100644 tests/Feature/EpisodesTest.php delete mode 100644 tests/Feature/ExampleTest.php diff --git a/app/Models/Channel.php b/app/Models/Channel.php index b4f0c11..85b9097 100644 --- a/app/Models/Channel.php +++ b/app/Models/Channel.php @@ -295,6 +295,14 @@ class Channel extends Model { 'twitch_live' => 'boolean', ]; + protected $fillable = [ + 'access_key', + 'ext_id', + 'short_name', + 'stream_link', + 'title', + ]; + protected $hidden = [ 'access_key', 'chat_commands', diff --git a/app/Models/Event.php b/app/Models/Event.php index 8a0d198..f4136d3 100644 --- a/app/Models/Event.php +++ b/app/Models/Event.php @@ -47,6 +47,12 @@ class Event extends Model 'visible' => 'boolean', ]; + protected $fillable = [ + 'name', + 'title', + 'visible', + ]; + protected $hidden = [ 'created_at', 'fix_timezone', diff --git a/tests/Feature/EpisodesTest.php b/tests/Feature/EpisodesTest.php new file mode 100644 index 0000000..0199cfe --- /dev/null +++ b/tests/Feature/EpisodesTest.php @@ -0,0 +1,115 @@ + 'super-event', + ], [ + 'title' => 'Ein ganz tolles event', + 'visible' => true, + ]); + $channel = Channel::firstOrCreate([ + 'short_name' => 'ZSG', + ], [ + 'stream_link' => 'twitch.tv/youtube', + 'title' => 'ZeldaSpeedGames', + ]); + $episode = new Episode(); + $episode->comment = 'Das ist die richtige, die andere bitte löschen'; + $episode->confirmed = true; + $episode->estimate = 2 * 60 * 60; + $episode->event()->associate($event); + $episode->start = now()->addDay(); + $episode->title = 'Player 1 vs Player 2'; + $episode->save(); + $episode->channels()->attach($channel); + $episode->players()->createMany([ + ['name_override' => 'Player 1'], + ['name_override' => 'Player 2'], + ]); + $episode->crew()->createMany([ + ['channel_id' => $channel->id, 'name_override' => 'Comm 1', 'role' => 'commentary'], + ['channel_id' => $channel->id, 'name_override' => 'Comm 2', 'role' => 'commentary'], + ['channel_id' => null, 'name_override' => 'Tracker', 'role' => 'tracking'], + ['channel_id' => null, 'name_override' => 'Setter Upper', 'role' => 'setup'], + ]); + } + + public function testList() { + $response = $this->getJson('/api/episodes'); + $response->assertStatus(200); + $response->assertJsonStructure([ + '*' => [ + 'channels' => [ + '*' => [ + 'id', + 'languages', + 'pivot' => [ + 'accept_comms', + 'accept_tracker', + ], + 'short_name', + 'stream_link', + 'title', + ], + ], + 'comment', + 'confirmed', + 'create_raceroom', + 'crew' => [ + '*' => [ + 'channel_id', + 'confirmed', + 'id', + 'name_override', + 'role', + 'stream_override', + 'user', + 'user_id', + ], + ], + 'estimate', + 'event' => [ + 'banner', + 'corner', + 'create_raceroom', + 'end', + 'external_schedule', + 'game', + 'id', + 'name', + 'raceroom_lead_time', + 'racetime_category', + 'short', + 'start', + 'title', + ], + 'ext_id', + 'game', + 'id', + 'players' => [ + '*' => [ + 'name_override', + 'stream_override', + 'user', + 'user_id', + ], + ], + 'raceroom', + 'raceroom_lead_time', + 'start', + 'title', + ], + ]); + } + +} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php deleted file mode 100644 index 78ccc21..0000000 --- a/tests/Feature/ExampleTest.php +++ /dev/null @@ -1,21 +0,0 @@ -get('/'); - - $response->assertStatus(200); - } -} -- 2.47.3