diff options
| author | William Boman <william@redwill.se> | 2026-04-06 20:08:26 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-06 20:08:26 +0200 |
| commit | b03fb0f20bc1d43daf558cda981a2be22e73ac42 (patch) | |
| tree | 42c968865fea83689cbe599bca8ff4ff88b9fa28 | |
| parent | chore(main): release 2.2.1 (#2055) (diff) | |
| download | mason-main.tar mason-main.tar.gz mason-main.tar.bz2 mason-main.tar.lz mason-main.tar.xz mason-main.tar.zst mason-main.zip | |
| -rw-r--r-- | lua/mason-core/installer/UninstallRunner.lua | 2 | ||||
| -rw-r--r-- | tests/mason-core/package/package_spec.lua | 32 |
2 files changed, 33 insertions, 1 deletions
diff --git a/lua/mason-core/installer/UninstallRunner.lua b/lua/mason-core/installer/UninstallRunner.lua index 67ae285f..760ad88b 100644 --- a/lua/mason-core/installer/UninstallRunner.lua +++ b/lua/mason-core/installer/UninstallRunner.lua @@ -36,7 +36,7 @@ function UninstallRunner:execute(opts, callback) local location = self.handle.location log.fmt_info("Executing uninstaller for %s %s", pkg, opts) a.run(function() - Result.try(function(try) + return Result.try(function(try) if not opts.bypass_permit then try(self:acquire_permit()):receive() end diff --git a/tests/mason-core/package/package_spec.lua b/tests/mason-core/package/package_spec.lua index 8d1929d8..b05a2355 100644 --- a/tests/mason-core/package/package_spec.lua +++ b/tests/mason-core/package/package_spec.lua @@ -145,6 +145,38 @@ describe("Package ::", function() end) end) + it("should successfully uninstall package", function() + local dummy = registry.get_package "dummy" + local package_uninstall_success_handler = spy.new() + local package_uninstall_failed_handler = spy.new() + local uninstall_success_handler = spy.new() + local uninstall_failed_handler = spy.new() + registry:once("package:uninstall:success", package_uninstall_success_handler) + registry:once("package:uninstall:failed", package_uninstall_failed_handler) + dummy:once("uninstall:success", uninstall_success_handler) + dummy:once("uninstall:failed", uninstall_failed_handler) + + local handle = dummy:install { version = "1337" } + + assert.wait(function() + assert.is_true(handle:is_closed()) + assert.is_true(dummy:is_installed()) + end) + + dummy:uninstall() + + assert.wait(function() + assert.spy(uninstall_success_handler).was_called(1) + assert.spy(uninstall_success_handler).was_called_with(match.instanceof(receipt.InstallReceipt)) + assert.spy(package_uninstall_success_handler).was_called(1) + assert + .spy(package_uninstall_success_handler) + .was_called_with(match.is_ref(dummy), match.instanceof(receipt.InstallReceipt)) + assert.spy(package_uninstall_failed_handler).was_called(0) + assert.spy(uninstall_failed_handler).was_called(0) + end) + end) + it("should fail to install package", function() local dummy = registry.get_package "dummy" stub(dummy.spec.source, "install", function() |
