67 lines
2.0 KiB
PHP
67 lines
2.0 KiB
PHP
<?php
|
|
|
|
use App\Models\Cron;
|
|
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;
|
|
|
|
beforeEach(function () {
|
|
$this->user = User::factory()->create(['email_verified_at' => now()]);
|
|
$this->server = Server::factory()->create(['name' => 'detail-srv']);
|
|
$this->site = Site::factory()->create([
|
|
'server_id' => $this->server->id,
|
|
'domain' => 'detail-test.de',
|
|
'wp_version' => '6.5',
|
|
'php_version' => '8.3',
|
|
]);
|
|
});
|
|
|
|
it('redirects guests', function () {
|
|
get(route('sites.show', $this->site))->assertRedirect(route('login'));
|
|
});
|
|
|
|
it('renders the overview tab by default', function () {
|
|
actingAs($this->user)->get(route('sites.show', $this->site))
|
|
->assertStatus(200)
|
|
->assertSeeText('detail-test.de')
|
|
->assertSeeText('Übersicht')
|
|
->assertSeeText('WordPress')
|
|
->assertSeeText('PHP / ini')
|
|
->assertSeeText('Datei-Manager')
|
|
->assertSeeText('Cronjobs')
|
|
->assertSeeText('Logs')
|
|
->assertSeeText('Installation')
|
|
->assertSeeText('Schnellaktionen');
|
|
});
|
|
|
|
it('switches between all six tabs', function () {
|
|
foreach (['wordpress', 'php', 'files', 'cron', 'logs', 'overview'] as $tab) {
|
|
livewire('pages.sites.show', ['site' => $this->site])
|
|
->call('setTab', $tab)
|
|
->assertSet('tab', $tab);
|
|
}
|
|
});
|
|
|
|
it('lists site crons in the cron tab', function () {
|
|
Cron::factory()->create([
|
|
'site_id' => $this->site->id,
|
|
'name' => 'Test Cronjob XYZ',
|
|
]);
|
|
|
|
livewire('pages.sites.show', ['site' => $this->site])
|
|
->call('setTab', 'cron')
|
|
->assertSeeText('Test Cronjob XYZ');
|
|
});
|
|
|
|
it('toggles maintenance mode and persists', function () {
|
|
expect($this->site->maintenance_mode)->toBeFalse();
|
|
|
|
livewire('pages.sites.show', ['site' => $this->site])
|
|
->call('toggleMaintenance');
|
|
|
|
expect($this->site->fresh()->maintenance_mode)->toBeTrue();
|
|
});
|