--- /dev/null
+<?php
+
+namespace Tests\Feature;
+
+use App\Models\Channel;
+use App\Models\Episode;
+use App\Models\Event;
+use Tests\TestCase;
+
+class EpisodesTest extends TestCase {
+
+ protected function setUp(): void {
+ parent::setUp();
+ $event = Event::firstOrCreate([
+ 'name' => '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',
+ ],
+ ]);
+ }
+
+}
+++ /dev/null
-<?php
-
-namespace Tests\Feature;
-
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Tests\TestCase;
-
-class ExampleTest extends TestCase
-{
- /**
- * A basic test example.
- *
- * @return void
- */
- public function test_the_application_returns_a_successful_response()
- {
- $response = $this->get('/');
-
- $response->assertStatus(200);
- }
-}