create([ 'server_id' => $this->server->id, 'name' => 'vito-agent', 'type' => 'monitoring', 'version' => 'latest', 'status' => ServiceStatus::READY, ]); app(Uninstall::class)->uninstall($this->server->monitoring()); $this->assertDatabaseMissing('services', [ 'server_id' => $this->server->id, 'name' => 'vito-agent', 'type' => 'monitoring', 'version' => 'latest', 'status' => ServiceStatus::READY, ]); } /** * Cannot uninstall nginx because some sites using it */ public function test_cannot_uninstall_nginx(): void { SSH::fake(); $this->expectException(ValidationException::class); app(Uninstall::class)->uninstall($this->server->webserver()); } /** * Cannot uninstall mysql because some databases exist */ public function test_cannot_uninstall_mysql(): void { SSH::fake(); Database::factory()->create([ 'server_id' => $this->server->id, ]); $this->expectException(ValidationException::class); app(Uninstall::class)->uninstall($this->server->database()); } /** * Cannot uninstall supervisor because some queues exist */ public function test_cannot_uninstall_supervisor(): void { SSH::fake(); Worker::factory()->create([ 'server_id' => $this->server->id, 'site_id' => $this->site->id, ]); $this->expectException(ValidationException::class); app(Uninstall::class)->uninstall($this->server->processManager()); } }