aboutsummaryrefslogtreecommitdiffstats
path: root/tests/mason-registry/sources/lua_spec.lua
blob: c720ae103a3fec31988d294fe724da59c3873a17 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
local LuaRegistrySource = require "mason-registry.sources.lua"

describe("Lua registry source", function()
    it("should get package", function()
        package.loaded["pkg-index"] = {
            ["my-pkg"] = "pkg-index.my-pkg",
        }
        package.loaded["pkg-index.my-pkg"] = {}
        local source = LuaRegistrySource:new {
            mod = "pkg-index",
        }
        assert.is_not_nil(source:get_package "my-pkg")
        assert.is_nil(source:get_package "non-existent")
    end)

    it("should get all package names", function()
        package.loaded["pkg-index"] = {
            ["my-pkg"] = "pkg-index.my-pkg",
            ["rust-analyzer"] = "pkg-index.rust-analyzer",
            ["typescript-language-server"] = "pkg-index.typescript-language-server",
        }
        local source = LuaRegistrySource:new {
            mod = "pkg-index",
        }
        local package_names = source:get_all_package_names()
        table.sort(package_names)
        assert.same({
            "my-pkg",
            "rust-analyzer",
            "typescript-language-server",
        }, package_names)
    end)

    it("should check if is installed", function()
        package.loaded["pkg-index"] = {}
        local installed_source = LuaRegistrySource:new {
            mod = "pkg-index",
        }
        local uninstalled_source = LuaRegistrySource:new {
            mod = "non-existent",
        }

        assert.is_true(installed_source:is_installed())
        assert.is_false(uninstalled_source:is_installed())
    end)

    it("should stringify instances", function()
        assert.equals("LuaRegistrySource(mod=pkg-index)", tostring(LuaRegistrySource:new { mod = "pkg-index" }))
    end)
end)