<?php namespace Tests\Feature\Http; use App\Enums\Database; use App\Enums\OperatingSystem; use App\Enums\ServerProvider; use App\Enums\ServerStatus; use App\Enums\Webserver; use App\Http\Livewire\Servers\CreateServer; use App\Jobs\Installation\Initialize; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Bus; use Livewire\Livewire; use Tests\TestCase; class ServerTest extends TestCase { use RefreshDatabase; public function test_create_custom_server(): void { $this->actingAs($this->user); Bus::fake(); Livewire::test(CreateServer::class) ->set('provider', ServerProvider::CUSTOM) ->set('name', 'test') ->set('ip', '1.1.1.1') ->set('port', '22') ->set('os', OperatingSystem::UBUNTU22) ->set('webserver', Webserver::NGINX) ->set('database', Database::MYSQL80) ->set('php', '8.2') ->call('submit') ->assertSuccessful(); $this->assertDatabaseHas('servers', [ 'name' => 'test', 'ip' => '1.1.1.1', 'status' => ServerStatus::INSTALLING, ]); Bus::assertDispatched(Initialize::class); } }