seed(RolesAndPermissionsSeeder::class); }); function terminationAdmin(): User { $admin = User::factory()->create(['is_active' => true]); $admin->assignRole('admin'); return $admin; } test('the legal queue lists open termination requests', function () { $termination = TerminationRequest::factory()->extraordinary()->create([ 'name' => 'Paula Presse', 'email' => 'paula@example.test', 'contract_reference' => 'STR-2026-0042', 'reason' => 'Wiederholte Störung der Leistung.', ]); Livewire::actingAs(terminationAdmin()) ->test('admin.legal-requests.index') ->assertOk() ->assertSee('Kündigungen') ->assertSee('K-'.$termination->id) ->assertSee('Paula Presse') ->assertSee('paula@example.test') ->assertSee('STR-2026-0042') ->assertSee('Außerordentlich'); }); test('an admin can resolve a termination request', function () { $termination = TerminationRequest::factory()->create(); Livewire::actingAs(terminationAdmin()) ->test('admin.legal-requests.index') ->call('resolveTermination', $termination->id) ->assertOk(); $termination->refresh(); expect($termination->status)->toBe('resolved'); expect($termination->resolved_at)->not->toBeNull(); }); test('an admin can reopen a resolved termination request', function () { $termination = TerminationRequest::factory()->resolved()->create(); Livewire::actingAs(terminationAdmin()) ->test('admin.legal-requests.index') ->set('terminationStatusFilter', 'all') ->call('reopenTermination', $termination->id) ->assertOk(); $termination->refresh(); expect($termination->status)->toBe('open'); expect($termination->resolved_at)->toBeNull(); }); test('resolved terminations are hidden from the default open view', function () { TerminationRequest::factory()->resolved()->create(['name' => 'Erledigte Kündigung']); Livewire::actingAs(terminationAdmin()) ->test('admin.legal-requests.index') ->assertOk() ->assertDontSee('Erledigte Kündigung'); });