aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2026-05-17 22:54:28 +0200
committerWilliam Boman <william@redwill.se>2026-05-17 22:54:28 +0200
commitd48dc686365248681c59f025552433684adadab7 (patch)
tree42a5b07705b1dd863bc47a2460073e433ab6e2a6
parentfeat(registry): add registry_cache setting for controlling cache behaviour (diff)
downloadmason-feat/registry-cache-ttl-config.tar
mason-feat/registry-cache-ttl-config.tar.gz
mason-feat/registry-cache-ttl-config.tar.bz2
mason-feat/registry-cache-ttl-config.tar.lz
mason-feat/registry-cache-ttl-config.tar.xz
mason-feat/registry-cache-ttl-config.tar.zst
mason-feat/registry-cache-ttl-config.zip
fix: call callback if availablefeat/registry-cache-ttl-config
-rw-r--r--lua/mason-registry/init.lua5
-rw-r--r--tests/mason-registry/registry_spec.lua20
2 files changed, 23 insertions, 2 deletions
diff --git a/lua/mason-registry/init.lua b/lua/mason-registry/init.lua
index 8ae2b0a5..523a1256 100644
--- a/lua/mason-registry/init.lua
+++ b/lua/mason-registry/init.lua
@@ -171,6 +171,9 @@ end
local function refresh(sources, callback)
if not settings.current.registry_cache.refresh then
log.debug "Not performing a registry refresh as it's disabled in settings."
+ if callback then
+ return callback(true, {})
+ end
return true, {}
end
local a = require "mason-core.async"
@@ -186,7 +189,7 @@ local function refresh(sources, callback)
state.checksum
)
if callback then
- callback(true, {})
+ return callback(true, {})
end
return true, {}
end
diff --git a/tests/mason-registry/registry_spec.lua b/tests/mason-registry/registry_spec.lua
index 1f1d9aaa..cf909667 100644
--- a/tests/mason-registry/registry_spec.lua
+++ b/tests/mason-registry/registry_spec.lua
@@ -38,11 +38,17 @@ describe("mason-registry", function()
describe("refresh/update", function()
local a = require "mason-core.async"
+ local settings = require "mason.settings"
+ local installer = require "mason-registry.installer"
+
+ after_each(function()
+ settings.set(settings._DEFAULT_SETTINGS)
+ end)
it("should refresh registry synchronously", function()
local ok, updated_registries = registry.refresh()
assert.is_true(ok)
- assert.same(updated_registries, {})
+ assert.same({}, updated_registries)
end)
it("should call registry.refresh callback", function()
@@ -62,5 +68,17 @@ describe("mason-registry", function()
assert.spy(spy).was_called_with(true, match.is_table())
end)
end)
+
+ it("should immediately return if refresh is disabled", function()
+ settings.current.registry_cache.refresh = false
+ local ok, registries = registry.refresh()
+ assert.is_true(ok)
+ assert.same({}, registries)
+
+ local spy = spy.new()
+ registry.refresh(spy)
+ assert.spy(spy).was_called(1)
+ assert.spy(spy).was_called_with(true, {})
+ end)
end)
end)