create(['title' => 'My Awesome Video']); $this->actingAs(User::factory()->create()) ->get(route('video-projects.index')) ->assertOk() ->assertSee('My Awesome Video'); }); test('a new video project can be created', function () { Livewire::test(Index::class) ->set('title', 'New Video') ->set('description', 'A description') ->call('save'); expect(VideoProject::where('title', 'New Video')->exists())->toBeTrue(); }); test('title is required to create a video project', function () { Livewire::test(Index::class) ->set('title', '') ->call('save') ->assertHasErrors(['title']); }); test('a video project can be deleted', function () { $project = VideoProject::factory()->create(); Livewire::test(Index::class)->call('delete', $project->id); expect(VideoProject::find($project->id))->toBeNull(); }); test('it shows step progress counts for a started project', function () { $project = VideoProject::factory()->create(['title' => 'Progress Test']); $engine = new WorkflowEngine; $step = $engine->start($project, [ ['type' => 'script_generation'], ['type' => 'tts_voiceover'], ]); $engine->completeStep($step); $this->actingAs(User::factory()->create()) ->get(route('video-projects.index')) ->assertSee('1 / 2'); });