actingAs($this->user); /** @var \App\Models\SourceControl $sourceControl */ $sourceControl = \App\Models\SourceControl::factory()->create([ 'provider' => SourceControl::GITHUB, ]); Livewire::test(CreateSite::class, ['server' => $this->server]) ->set('type', SiteType::LARAVEL) ->set('domain', 'example.com') ->set('alias', 'www.example.com') ->set('php_version', '8.2') ->set('web_directory', 'public') ->set('source_control', $sourceControl->id) ->set('repository', 'test/test') ->set('branch', 'main') ->set('composer', true) ->call('create') ->assertSuccessful() ->assertHasNoErrors(); Bus::assertDispatched(CreateVHost::class); $this->assertDatabaseHas('sites', [ 'domain' => 'example.com', 'status' => SiteStatus::INSTALLING, ]); } public function test_see_sites_list(): void { $this->actingAs($this->user); $site = Site::factory()->create([ 'server_id' => $this->server->id, ]); Livewire::test(SitesList::class, ['server' => $this->server]) ->assertSee([ $site->domain, ]); } public function test_delete_site(): void { Bus::fake(); $this->actingAs($this->user); $site = Site::factory()->create([ 'server_id' => $this->server->id, ]); Livewire::test(DeleteSite::class, ['server' => $this->server]) ->set('site', $site) ->call('delete') ->assertSuccessful(); Bus::assertDispatched(\App\Jobs\Site\DeleteSite::class); $site->refresh(); $this->assertEquals(SiteStatus::DELETING, $site->status); } public function test_change_php_version(): void { Bus::fake(); $this->actingAs($this->user); $site = Site::factory()->create([ 'server_id' => $this->server->id, ]); Livewire::test(ChangePhpVersion::class, ['site' => $site]) ->set('version', '8.1') ->call('change') ->assertSuccessful(); Bus::assertDispatched(\App\Jobs\Site\ChangePHPVersion::class); } public function test_update_source_control(): void { $this->actingAs($this->user); /** @var \App\Models\SourceControl $gitlab */ $gitlab = \App\Models\SourceControl::factory()->gitlab()->create(); Livewire::test(UpdateSourceControlProvider::class, ['site' => $this->site]) ->set('source_control', $gitlab->id) ->call('update') ->assertSuccessful(); $this->site->refresh(); $this->assertEquals($gitlab->id, $this->site->source_control_id); } }