'4.0.0-beta.998']); InstanceSettings::create([ 'id' => 0, 'new_version_available' => true, ]); Cache::shouldReceive('remember') ->once() ->with('coolify:versions:all', 3600, Mockery::type(\Closure::class)) ->andReturn([ 'coolify' => [ 'v4' => [ 'version' => '4.0.0-beta.999', ], ], ]); Livewire::test(Upgrade::class) ->assertSet('currentVersion', '4.0.0-beta.998') ->assertSet('latestVersion', '4.0.0-beta.999') ->assertSet('isUpgradeAvailable', true) ->assertSee('4.0.0-beta.998') ->assertSee('4.0.0-beta.999'); }); it('falls back to 0.0.0 during mount when cached versions data is unavailable', function () { InstanceSettings::create([ 'id' => 0, 'new_version_available' => false, ]); Cache::shouldReceive('remember') ->once() ->with('coolify:versions:all', 3600, Mockery::type(\Closure::class)) ->andReturn(null); Livewire::test(Upgrade::class) ->assertSet('latestVersion', '0.0.0'); }); it('clears stale upgrade availability when current version already matches latest version', function () { config(['constants.coolify.version' => '4.0.0-beta.999']); InstanceSettings::create([ 'id' => 0, 'new_version_available' => true, ]); Cache::shouldReceive('remember') ->once() ->with('coolify:versions:all', 3600, Mockery::type(\Closure::class)) ->andReturn([ 'coolify' => [ 'v4' => [ 'version' => '4.0.0-beta.999', ], ], ]); Livewire::test(Upgrade::class) ->assertSet('latestVersion', '4.0.0-beta.999') ->assertSet('isUpgradeAvailable', false); expect(InstanceSettings::findOrFail(0)->new_version_available)->toBeFalse(); }); it('clears stale upgrade availability when current version is newer than cached latest version', function () { config(['constants.coolify.version' => '4.0.0-beta.1000']); InstanceSettings::create([ 'id' => 0, 'new_version_available' => true, ]); Cache::shouldReceive('remember') ->once() ->with('coolify:versions:all', 3600, Mockery::type(\Closure::class)) ->andReturn([ 'coolify' => [ 'v4' => [ 'version' => '4.0.0-beta.999', ], ], ]); Livewire::test(Upgrade::class) ->assertSet('latestVersion', '4.0.0-beta.999') ->assertSet('isUpgradeAvailable', false); expect(InstanceSettings::findOrFail(0)->new_version_available)->toBeFalse(); });