clupilot/app/tests/Feature/Pages/ServersPageTest.php

40 lines
1.2 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('servers.index'))->assertRedirect(route('login'));
});
it('renders servers chrome + grid', function () {
$user = User::factory()->create(['email_verified_at' => now()]);
$s = Server::factory()->create(['name' => 'eu-prod-77', 'env' => 'prod']);
Site::factory()->count(4)->create(['server_id' => $s->id]);
actingAs($user)->get(route('servers.index'))
->assertStatus(200)
->assertSeeText('Server')
->assertSeeText('Aktive Nodes')
->assertSeeText('Ø CPU Load')
->assertSeeText('Ø RAM')
->assertSeeText('eu-prod-77')
->assertSeeText('4 sites')
->assertSee('clu-server-card', false)
->assertSee('clu-gauge-bar', false);
});
it('filters by env segment', function () {
Server::factory()->create(['env' => 'prod', 'name' => 'p-1']);
Server::factory()->create(['env' => 'edge', 'name' => 'e-1']);
livewire('pages.servers.index')
->call('setEnv', 'edge')
->assertSee('e-1')
->assertDontSee('p-1');
});