aboutsummaryrefslogtreecommitdiffstats
path: root/tests/ui_status_win_spec.lua
blob: 01f06c3aebe9433db069be1295f2f9e279125a77 (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
local ServerHints = require "nvim-lsp-installer.ui.status-win.server_hints"

describe("status win server hints", function()
    it("should produce valid server hints", function()
        local srv = ServerGenerator {
            name = "rust_analyzer",
            languages = { "rust", "analyz", "totallynotjavascript" },
        }
        local hints = ServerHints.new(srv)
        assert.equal(vim.inspect { "analyz", "totallynotjavascript" }, vim.inspect(hints:get_hints()))
        assert.equal("(analyz, totallynotjavascript)", tostring(hints))
    end)

    it("should not produce server hints", function()
        local srv = ServerGenerator {
            name = "rust_analyzer",
            languages = { "rust" },
        }
        local srv2 = ServerGenerator {
            name = "cssmodules_ls",
            languages = { "css" },
        }
        local hints = ServerHints.new(srv)
        assert.equal(vim.inspect {}, vim.inspect(hints:get_hints()))
        assert.equal("", tostring(hints))

        local hints2 = ServerHints.new(srv2)
        assert.equal(vim.inspect {}, vim.inspect(hints2:get_hints()))
        assert.equal("", tostring(hints2))
    end)

    it("should produce server hints even when there's a match if language is short or long", function()
        local srv = ServerGenerator {
            name = "clangd",
            languages = { "c", "c++" },
        }
        local srv2 = ServerGenerator {
            name = "this_is_a_very_cool_rust_server",
            languages = { "rust" },
        }
        local hints = ServerHints.new(srv)
        assert.equal(vim.inspect { "c", "c++" }, vim.inspect(hints:get_hints()))
        assert.equal("(c, c++)", tostring(hints))

        local hints2 = ServerHints.new(srv2)
        assert.equal(vim.inspect { "rust" }, vim.inspect(hints2:get_hints()))
        assert.equal("(rust)", tostring(hints2))
    end)
end)