Fix Vultr power controls for stopped instances

This commit is contained in:
Cornelis Terblanche committed 2026-06-03 21:32:18 +02:00
1 parent 94abbe1590
commit f7150a1d6c
4 files changed
+33 -2

No files matched your search

@@ -236,6 +236,23 @@ it('blocks action validation when Vultr instance is stopped', function () {
]);
});
it('shows Vultr power on button when stopped even if server was previously functional', function () {
$this->server->update([
'ip' => '1.2.3.5',
'vultr_instance_status' => 'stopped',
]);
$this->server->settings->update([
'is_reachable' => true,
'is_usable' => true,
'force_disabled' => false,
]);
expect($this->server->fresh()->isFunctional())->toBeTrue();
Livewire::test(Show::class, ['server_uuid' => $this->server->uuid])
->assertSee('Power On');
});
it('starts a Vultr instance', function () {
Http::fake([
'https://api.vultr.com/v2/instances/instance-1/start' => Http::response([], 204),
+14
View File
@@ -136,3 +136,17 @@ it('finds an instance by IPv4 or IPv6', function () {
->and($service->findInstanceByIp('2001:db8::1')['id'])->toBe('instance-1')
->and($service->findInstanceByIp('1.2.3.4'))->toBeNull();
});
it('handles empty successful responses from Vultr API', function () {
Http::fake([
'https://api.vultr.com/v2/instances/instance-1/start' => Http::response(null, 204),
'https://api.vultr.com/v2/instances/instance-1' => Http::response(null, 204),
]);
$service = new VultrService('fake-token');
expect($service->startInstance('instance-1'))->toBe([]);
$service->deleteInstance('instance-1');
Http::assertSentCount(2);
});