aboutsummaryrefslogtreecommitdiffstats
path: root/tests/mason-core/receipt_spec.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-11-07 00:29:18 +0100
committerWilliam Boman <william@redwill.se>2025-02-19 12:15:48 +0100
commit6a7662760c515c74f2c37fc825776ead65d307f9 (patch)
tree0f4496d0678c7029b10236cbf48cc0f5ff63c1dc /tests/mason-core/receipt_spec.lua
parentfix(pypi): remove -U flag and fix log message (diff)
downloadmason-6a7662760c515c74f2c37fc825776ead65d307f9.tar
mason-6a7662760c515c74f2c37fc825776ead65d307f9.tar.gz
mason-6a7662760c515c74f2c37fc825776ead65d307f9.tar.bz2
mason-6a7662760c515c74f2c37fc825776ead65d307f9.tar.lz
mason-6a7662760c515c74f2c37fc825776ead65d307f9.tar.xz
mason-6a7662760c515c74f2c37fc825776ead65d307f9.tar.zst
mason-6a7662760c515c74f2c37fc825776ead65d307f9.zip
refactor!: change Package API
This changes the following public APIs: **(_breaking_) Events on the `Package` class** The `uninstall:success` event on the `Package` class now receives an `InstallReceipt` as argument, instead of an `InstallHandle`. This receipt is an in-memory representation of what was uninstalled. There's also a new `uninstall:failed` event for situations where uninstallation for some reason fails. Note: this also applies to the registry events (i.e. `package:uninstall:success` and `package:uninstall:failed`). --- **(_breaking_) `Package:uninstall()` is now asynchronous and receives two new arguments, similarly to `Package:install()`** While package uninstallations remain synchronous under the hood, the public API has been changed from synchronous -> asynchronous. Users of this method are recommended to provide a callback in situations where code needs to execute after uninstallation fully completes. --- **(_breaking_) `Package:get_install_path()` has been removed. --- **`Package:install()` now takes an optional callback** This callback allows consumers to be informed whether installation was successful or not without having to go through a different, low-level, API. See below for a comparison between the old and new APIs: ```lua -- before local handle = pkg:install() handle:once("closed", function () -- ... end) -- after pkg:install({}, function (success, result) -- ... end) ```
Diffstat (limited to 'tests/mason-core/receipt_spec.lua')
-rw-r--r--tests/mason-core/receipt_spec.lua24
1 files changed, 15 insertions, 9 deletions
diff --git a/tests/mason-core/receipt_spec.lua b/tests/mason-core/receipt_spec.lua
index e7fcd648..5cb01d5b 100644
--- a/tests/mason-core/receipt_spec.lua
+++ b/tests/mason-core/receipt_spec.lua
@@ -45,14 +45,20 @@ describe("receipt ::", function()
assert.is_true(receipt:is_schema_min "1.1")
end)
- it("should parse 1.2 structures", function()
- local receipt = InstallReceipt:new(fixture "1.2.json")
+ it("should parse 2.0 structures", function()
+ local receipt = InstallReceipt:new(fixture "2.0.json")
assert.equals("angular-language-server", receipt:get_name())
- assert.equals("1.2", receipt:get_schema_version())
+ assert.equals("2.0", receipt:get_schema_version())
assert.same({
type = "registry+v1",
- id = "pkg:npm/%40angular/language-server@16.1.8",
+ id = "pkg:npm/%40angular/language-server@19.1.0",
+ raw = {
+ id = "pkg:npm/%40angular/language-server@19.1.0",
+ extra_packages = {
+ "typescript@5.4.5",
+ },
+ },
}, receipt:get_source())
assert.same({
bin = {
@@ -61,26 +67,26 @@ describe("receipt ::", function()
opt = {},
share = {},
}, receipt:get_links())
- assert.is_true(receipt:is_schema_min "1.2")
+ assert.is_true(receipt:is_schema_min "2.0")
end)
describe("schema versions ::", function()
it("should check minimum compatibility", function()
local receipt_1_0 = InstallReceipt:new { schema_version = "1.0" }
local receipt_1_1 = InstallReceipt:new { schema_version = "1.1" }
- local receipt_1_2 = InstallReceipt:new { schema_version = "1.2" }
+ local receipt_2_0 = InstallReceipt:new { schema_version = "2.0" }
assert.is_true(receipt_1_0:is_schema_min "1.0")
assert.is_true(receipt_1_1:is_schema_min "1.0")
- assert.is_true(receipt_1_2:is_schema_min "1.0")
+ assert.is_true(receipt_2_0:is_schema_min "1.0")
assert.is_false(receipt_1_0:is_schema_min "1.1")
assert.is_true(receipt_1_1:is_schema_min "1.1")
- assert.is_true(receipt_1_2:is_schema_min "1.1")
+ assert.is_true(receipt_2_0:is_schema_min "1.1")
assert.is_false(receipt_1_0:is_schema_min "1.2")
assert.is_false(receipt_1_1:is_schema_min "1.2")
- assert.is_true(receipt_1_2:is_schema_min "1.2")
+ assert.is_true(receipt_2_0:is_schema_min "2.0")
end)
end)
end)