aboutsummaryrefslogtreecommitdiffstats
path: root/tests/mason-core
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2026-04-06 20:08:26 +0200
committerGitHub <noreply@github.com>2026-04-06 20:08:26 +0200
commitb03fb0f20bc1d43daf558cda981a2be22e73ac42 (patch)
tree42c968865fea83689cbe599bca8ff4ff88b9fa28 /tests/mason-core
parentchore(main): release 2.2.1 (#2055) (diff)
downloadmason-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
fix: actually emit the receipt in uninstall event payloads (#2071)HEADmain
Diffstat (limited to 'tests/mason-core')
-rw-r--r--tests/mason-core/package/package_spec.lua32
1 files changed, 32 insertions, 0 deletions
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()