52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
<?php
|
|
|
|
use App\Models\Activity;
|
|
use App\Models\Cluster;
|
|
use App\Models\Server;
|
|
use App\Models\Site;
|
|
use App\Models\User;
|
|
use function Pest\Laravel\actingAs;
|
|
use function Pest\Laravel\get;
|
|
|
|
it('redirects guests to login', function () {
|
|
get(route('dashboard'))->assertRedirect(route('login'));
|
|
});
|
|
|
|
it('renders dashboard for an auth user', function () {
|
|
$user = User::factory()->create(['email_verified_at' => now()]);
|
|
|
|
// seed minimal data
|
|
$cluster = Cluster::factory()->create();
|
|
$server = Server::factory()->create(['cluster_id' => $cluster->id, 'name' => 'eu-prod-01']);
|
|
Site::factory()->count(3)->create(['server_id' => $server->id]);
|
|
Activity::factory()->count(5)->create(['user_id' => $user->id]);
|
|
|
|
actingAs($user)->get(route('dashboard'))
|
|
->assertStatus(200)
|
|
->assertSeeText('Dashboard')
|
|
->assertSeeText('Sites Online')
|
|
->assertSeeText('Ø Response')
|
|
->assertSeeText('Updates ausstehend')
|
|
->assertSeeText('Blocked / 24h')
|
|
->assertSeeText('Top Sites')
|
|
->assertSeeText('Aktivität')
|
|
->assertSee('clu-topbar', false)
|
|
->assertSee('clu-metric', false)
|
|
->assertSee('clu-sidebar', false)
|
|
->assertSee('clu-card', false);
|
|
});
|
|
|
|
it('shows seeded site rows in the top table', function () {
|
|
$user = User::factory()->create(['email_verified_at' => now()]);
|
|
$server = Server::factory()->create();
|
|
$site = Site::factory()->create([
|
|
'server_id' => $server->id,
|
|
'domain' => 'example-test.com',
|
|
'visitors_24h' => 9999,
|
|
]);
|
|
|
|
actingAs($user)->get(route('dashboard'))
|
|
->assertStatus(200)
|
|
->assertSeeText('example-test.com');
|
|
});
|