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

48 lines
1.5 KiB
PHP

<?php
use App\Models\Backup;
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('backups.index'))->assertRedirect(route('login'));
});
it('renders backups page chrome', function () {
$user = User::factory()->create(['email_verified_at' => now()]);
actingAs($user)->get(route('backups.index'))
->assertStatus(200)
->assertSeeText('Backups')
->assertSeeText('Letztes Backup')
->assertSeeText('Storage')
->assertSeeText('Recovery-Points')
->assertSeeText('Fehlgeschlagen')
->assertSeeText('Neueste Backups')
->assertSeeText('Daily Backups')
->assertSeeText('Hourly Snapshots')
->assertSee('clu-pager', false);
});
it('shows seeded backups in the table', function () {
$user = User::factory()->create(['email_verified_at' => now()]);
$server = Server::factory()->create();
$site = Site::factory()->create(['server_id' => $server->id, 'domain' => 'backup-test.de']);
Backup::factory()->create(['site_id' => $site->id, 'status' => 'ok']);
actingAs($user)->get(route('backups.index'))
->assertStatus(200)
->assertSeeText('backup-test.de');
});
it('toggles config switches', function () {
livewire('pages.backups.index')
->assertSet('replicationEnabled', false)
->set('replicationEnabled', true)
->assertSet('replicationEnabled', true);
});