64 lines
2.3 KiB
PHP
64 lines
2.3 KiB
PHP
<?php
|
|
|
|
use App\Models\Server;
|
|
use App\Models\Site;
|
|
use App\Models\User;
|
|
use function Pest\Laravel\actingAs;
|
|
use function Pest\Laravel\get;
|
|
use function Pest\Livewire\livewire;
|
|
|
|
it('redirects guests to login', function () {
|
|
get(route('sites.index'))->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');
|
|
});
|