diff options
| author | Mark Sommers <42284859+marks0mmers@users.noreply.github.com> | 2025-02-15 10:44:40 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-15 16:44:40 +0100 |
| commit | 5664dd5deb3ac9527da90691543eb28df51c1ef8 (patch) | |
| tree | 4f7f8857c4ef6abc26ed2412d84cf28edc0f6635 | |
| parent | tests: add new nvim versions to test matrix (#1877) (diff) | |
| download | mason-5664dd5deb3ac9527da90691543eb28df51c1ef8.tar mason-5664dd5deb3ac9527da90691543eb28df51c1ef8.tar.gz mason-5664dd5deb3ac9527da90691543eb28df51c1ef8.tar.bz2 mason-5664dd5deb3ac9527da90691543eb28df51c1ef8.tar.lz mason-5664dd5deb3ac9527da90691543eb28df51c1ef8.tar.xz mason-5664dd5deb3ac9527da90691543eb28df51c1ef8.tar.zst mason-5664dd5deb3ac9527da90691543eb28df51c1ef8.zip | |
fix: replace deprecated calls to vim.validate (#1876)
Co-authored-by: William Boman <william@redwill.se>
| -rw-r--r-- | lua/mason-core/package/init.lua | 43 | ||||
| -rw-r--r-- | tests/mason-core/package/package_spec.lua | 100 |
2 files changed, 74 insertions, 69 deletions
diff --git a/lua/mason-core/package/init.lua b/lua/mason-core/package/init.lua index 57f4868d..a5b14548 100644 --- a/lua/mason-core/package/init.lua +++ b/lua/mason-core/package/init.lua @@ -86,30 +86,33 @@ local PackageMt = { __index = Package } ---@field opt table<string, string>? ---@param spec PackageSpec | RegistryPackageSpec -function Package.new(spec) +local function validate_spec(spec) + if vim.fn.has "nvim-0.11" ~= 1 then + return + end if is_registry_spec(spec) then - vim.validate { - name = { spec.name, "s" }, - description = { spec.description, "s" }, - homepage = { spec.homepage, "s" }, - licenses = { spec.licenses, "t" }, - categories = { spec.categories, "t" }, - languages = { spec.languages, "t" }, - source = { spec.source, "t" }, - bin = { spec.bin, { "t", "nil" } }, - share = { spec.share, { "t", "nil" } }, - } + vim.validate("name", spec.name, "string") + vim.validate("description", spec.description, "string") + vim.validate("homepage", spec.homepage, "string") + vim.validate("licenses", spec.licenses, "table") + vim.validate("categories", spec.categories, "table") + vim.validate("languages", spec.languages, "table") + vim.validate("source", spec.source, "table") + vim.validate("bin", spec.bin, { "table", "nil" }) + vim.validate("share", spec.share, { "table", "nil" }) else - vim.validate { - name = { spec.name, "s" }, - desc = { spec.desc, "s" }, - homepage = { spec.homepage, "s" }, - categories = { spec.categories, "t" }, - languages = { spec.languages, "t" }, - install = { spec.install, "f" }, - } + vim.validate("name", spec.name, "string") + vim.validate("desc", spec.desc, "string") + vim.validate("homepage", spec.homepage, "string") + vim.validate("categories", spec.categories, "table") + vim.validate("languages", spec.languages, "table") + vim.validate("install", spec.install, "function") end +end +---@param spec PackageSpec | RegistryPackageSpec +function Package.new(spec) + validate_spec(spec) return EventEmitter.init(setmetatable({ name = spec.name, -- for convenient access spec = spec, diff --git a/tests/mason-core/package/package_spec.lua b/tests/mason-core/package/package_spec.lua index 0343d8bd..2cd47452 100644 --- a/tests/mason-core/package/package_spec.lua +++ b/tests/mason-core/package/package_spec.lua @@ -23,60 +23,62 @@ describe("package", function() assert.same({ "rust-analyzer", "nightly" }, parse "rust-analyzer@nightly") end) - it("should validate spec", function() - local valid_spec = { - name = "Package name", - desc = "Package description", - homepage = "https://example.com", - categories = { Pkg.Cat.LSP }, - languages = { Pkg.Lang.Rust }, - install = function() end, - } - local function spec(fields) - return setmetatable(fields, { __index = valid_spec }) - end - assert.equals( - "name: expected string, got number", - assert.has_error(function() - Pkg.new(spec { name = 23 }) - end) - ) + if vim.fn.has "nvim-0.11" == 1 then + it("should validate spec", function() + local valid_spec = { + name = "Package name", + desc = "Package description", + homepage = "https://example.com", + categories = { Pkg.Cat.LSP }, + languages = { Pkg.Lang.Rust }, + install = function() end, + } + local function spec(fields) + return setmetatable(fields, { __index = valid_spec }) + end + assert.equals( + "name: expected string, got number", + assert.has_error(function() + Pkg.new(spec { name = 23 }) + end) + ) - assert.equals( - "desc: expected string, got number", - assert.has_error(function() - Pkg.new(spec { desc = 23 }) - end) - ) + assert.equals( + "desc: expected string, got number", + assert.has_error(function() + Pkg.new(spec { desc = 23 }) + end) + ) - assert.equals( - "homepage: expected string, got number", - assert.has_error(function() - Pkg.new(spec { homepage = 23 }) - end) - ) + assert.equals( + "homepage: expected string, got number", + assert.has_error(function() + Pkg.new(spec { homepage = 23 }) + end) + ) - assert.equals( - "categories: expected table, got number", - assert.has_error(function() - Pkg.new(spec { categories = 23 }) - end) - ) + assert.equals( + "categories: expected table, got number", + assert.has_error(function() + Pkg.new(spec { categories = 23 }) + end) + ) - assert.equals( - "languages: expected table, got number", - assert.has_error(function() - Pkg.new(spec { languages = 23 }) - end) - ) + assert.equals( + "languages: expected table, got number", + assert.has_error(function() + Pkg.new(spec { languages = 23 }) + end) + ) - assert.equals( - "install: expected function, got number", - assert.has_error(function() - Pkg.new(spec { install = 23 }) - end) - ) - end) + assert.equals( + "install: expected function, got number", + assert.has_error(function() + Pkg.new(spec { install = 23 }) + end) + ) + end) + end it("should create new handle", function() local dummy = registry.get_package "dummy" |
