assertRedirect(route('login')); }); it('renders the sites page chrome for an auth user', function () { $user = User::factory()->create(['email_verified_at' => now()]); actingAs($user)->get(route('sites.index')) ->assertStatus(200) ->assertSeeText('Sites') ->assertSeeText('Sites Online') ->assertSeeText('Updates offen') ->assertSeeText('Ø PageSpeed') ->assertSeeText('Besucher / 24h') ->assertSeeText('Site hinzufügen') ->assertSee('clu-seg', false) ->assertSee('clu-pager', false) ->assertSee('clu-table', false); }); it('lists seeded sites and paginates', function () { $user = User::factory()->create(['email_verified_at' => now()]); $server = Server::factory()->create(['name' => 'test-srv-01']); Site::factory()->count(20)->create(['server_id' => $server->id]); actingAs($user)->get(route('sites.index')) ->assertStatus(200) ->assertSee('test-srv-01') ->assertSeeText('von 20'); }); it('filters by search term', function () { $user = User::factory()->create(['email_verified_at' => now()]); $server = Server::factory()->create(); Site::factory()->create(['server_id' => $server->id, 'domain' => 'unique-match-1.test']); Site::factory()->create(['server_id' => $server->id, 'domain' => 'other.test']); livewire('pages.sites.index') ->set('search', 'unique-match') ->assertSee('unique-match-1.test') ->assertDontSee('other.test'); }); it('filters by status segment', function () { $user = User::factory()->create(['email_verified_at' => now()]); $server = Server::factory()->create(); Site::factory()->create(['server_id' => $server->id, 'status' => 'ok', 'domain' => 'healthy.test']); Site::factory()->create(['server_id' => $server->id, 'status' => 'bad', 'domain' => 'broken.test']); livewire('pages.sites.index') ->call('setFilter', 'critical') ->assertSee('broken.test') ->assertDontSee('healthy.test'); });