-
-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathinstall_spec.lua
More file actions
88 lines (81 loc) · 3.8 KB
/
install_spec.lua
File metadata and controls
88 lines (81 loc) · 3.8 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
local helpers = require("nvim-test.helpers")
local Screen = require("nvim-test.screen")
local exec_lua = helpers.exec_lua
local luv = vim.loop
local eq = assert.equal
describe("install", function()
before_each(function()
helpers.clear()
helpers.fn.delete("./busted/fixtures/basic/bin", "rf")
helpers.fn.delete("./busted/fixtures/basic/data", "rf")
helpers.fn.mkdir("./busted/fixtures/basic/data", "p")
helpers.fn.mkdir("./busted/fixtures/basic/bin", "p")
-- Make plugin available
exec_lua([[vim.opt.rtp:append'.']])
exec_lua([[vim.opt.rtp:append'./deps/plenary.nvim/']])
end)
it("installs nextls when you open an elixir file and nextls isn't downloaded", function()
helpers.fn.writefile({ "" }, "./busted/fixtures/basic/data/.next-ls-force-update-v1")
exec_lua([[
vim.g.next_ls_cache_dir = "./busted/fixtures/basic/bin"
vim.g.next_ls_data_dir = "./busted/fixtures/basic/data"
vim.g.next_ls_default_bin = "./busted/fixtures/basic/bin/nextls"
require("elixir.nextls").setup({auto_update = true, cmd = "./busted/fixtures/basic/bin/nextls" })
vim.cmd.edit("./busted/fixtures/basic/lib/basic.ex")
]])
eq(luv.fs_stat("./busted/fixtures/basic/bin/nextls").mode, 33523)
end)
it("forces an install if the flag is not set", function()
helpers.fn.mkdir("./busted/fixtures/basic/bin", "p")
helpers.fn.writefile({ "foobar" }, "./busted/fixtures/basic/bin/nextls")
exec_lua([[
vim.g.next_ls_cache_dir = "./busted/fixtures/basic/bin"
vim.g.next_ls_data_dir = "./busted/fixtures/basic/data"
vim.g.next_ls_default_bin = "./busted/fixtures/basic/bin/nextls"
require("elixir.nextls").setup({auto_update = true, cmd = "./busted/fixtures/basic/bin/nextls" })
vim.cmd.edit("./busted/fixtures/basic/lib/basic.ex")
]])
assert.error(function()
helpers.fn.readfile("./busted/fixtures/basic/bin/nextls", "b")
end)
eq(luv.fs_stat("./busted/fixtures/basic/bin/nextls").mode, 33523)
end)
it("doesnt force an install if the flag is set", function()
helpers.fn.writefile({ "" }, "./busted/fixtures/basic/data/.next-ls-force-update-v1")
helpers.fn.mkdir("./busted/fixtures/basic/bin", "p")
helpers.fn.writefile({ "foobar" }, "./busted/fixtures/basic/bin/nextls")
local screen = Screen.new()
screen:attach()
exec_lua([[
vim.g.next_ls_cache_dir = "./busted/fixtures/basic/bin"
vim.g.next_ls_data_dir = "./busted/fixtures/basic/data"
vim.g.next_ls_default_bin = "./busted/fixtures/basic/bin/nextls"
require("elixir.nextls").setup({auto_update = true, cmd = "./busted/fixtures/basic/bin/nextls" })
vim.cmd.edit("./busted/fixtures/basic/lib/basic.ex")
]])
helpers.feed("<cr>")
-- screen:snapshot_util()
eq(helpers.fn.readfile("./busted/fixtures/basic/bin/nextls", "b")[1], "foobar")
screen:expect {
grid = [[
^defmodule Basic do |
def run do |
Enum.map([:one, :two], &Function.identity/1) |
end |
end |
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
|
]],
attr_ids = {
[1] = { bold = true, foreground = Screen.colors.Blue1 },
},
}
end)
end)