create(); Recording::query()->create([ 'user_id' => $user->id, 'title' => 'Pocket note', 'original_filename' => 'note.mp3', 'file_path' => 'recordings/note.mp3', 'file_size_bytes' => 1024, 'transcription_status' => 'done', 'transcript' => 'hello world', ]); $this->actingAs($user) ->get(route('recordings.index')) ->assertOk() ->assertSeeLivewire(Index::class) ->assertSee('Pocket note'); } public function test_search_filters_recordings(): void { $user = User::factory()->create(); $this->actingAs($user); Recording::query()->create([ 'user_id' => $user->id, 'title' => 'Office chat', 'original_filename' => 'office.mp3', 'file_path' => 'recordings/office.mp3', 'file_size_bytes' => 100, 'transcription_status' => 'done', 'transcript' => 'talking about the pocket recorder today', ]); Recording::query()->create([ 'user_id' => $user->id, 'title' => 'Unrelated', 'original_filename' => 'other.mp3', 'file_path' => 'recordings/other.mp3', 'file_size_bytes' => 100, 'transcription_status' => 'done', 'transcript' => 'nothing useful', ]); Livewire::test(Index::class) ->set('search', 'pocket recorder') ->assertSee('Office chat') ->assertDontSee('Unrelated'); } public function test_queue_pending_dispatches_jobs(): void { Bus::fake(); $user = User::factory()->create(); $this->actingAs($user); Recording::query()->create([ 'user_id' => $user->id, 'title' => 'Needs work', 'original_filename' => 'needs.mp3', 'file_path' => 'recordings/needs.mp3', 'file_size_bytes' => 100, 'transcription_status' => 'pending', ]); Livewire::test(Index::class) ->call('queuePending'); Bus::assertDispatched(TranscribeRecording::class, 1); } }