aboutsummaryrefslogtreecommitdiffstats
path: root/tests/server_spec.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2021-12-25 15:11:42 +0100
committerGitHub <noreply@github.com>2021-12-25 15:11:42 +0100
commitd7e233566543d4c83199f5644f90bb116d7070f2 (patch)
treeecfcb6e5abb937ee976eed6daac1bf2ab3bac51d /tests/server_spec.lua
parentfix: dont pass nil opts (diff)
downloadmason-d7e233566543d4c83199f5644f90bb116d7070f2.tar
mason-d7e233566543d4c83199f5644f90bb116d7070f2.tar.gz
mason-d7e233566543d4c83199f5644f90bb116d7070f2.tar.bz2
mason-d7e233566543d4c83199f5644f90bb116d7070f2.tar.lz
mason-d7e233566543d4c83199f5644f90bb116d7070f2.tar.xz
mason-d7e233566543d4c83199f5644f90bb116d7070f2.tar.zst
mason-d7e233566543d4c83199f5644f90bb116d7070f2.zip
add some tests (#360)
Diffstat (limited to 'tests/server_spec.lua')
-rw-r--r--tests/server_spec.lua56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/server_spec.lua b/tests/server_spec.lua
new file mode 100644
index 00000000..0695710e
--- /dev/null
+++ b/tests/server_spec.lua
@@ -0,0 +1,56 @@
+local lsp_installer = require "nvim-lsp-installer"
+local server = require "nvim-lsp-installer.server"
+local spy = require "luassert.spy"
+local a = require "plenary.async"
+
+describe("server", function()
+ a.tests.it("calls registered on_ready handlers upon successful installation", function()
+ local on_ready_handler = spy.new()
+ local generic_handler = spy.new()
+
+ lsp_installer.on_server_ready(generic_handler)
+
+ local srv = server.Server:new {
+ name = "on_ready_fixture",
+ root_dir = server.get_server_root_path "on_ready_fixture",
+ installer = function(_, callback)
+ callback(true)
+ end,
+ default_options = {
+ cmd = { "my-server" },
+ },
+ }
+ srv:on_ready(on_ready_handler)
+ srv:install()
+ assert.wait_for(function()
+ assert.spy(on_ready_handler).was_called(1)
+ assert.spy(generic_handler).was_called(1)
+ assert.spy(generic_handler).was_called_with(srv)
+ end)
+ assert.is_true(srv:is_installed())
+ end)
+
+ a.tests.it("doesn't call on_ready handler when server fails installation", function()
+ local on_ready_handler = spy.new()
+ local generic_handler = spy.new()
+
+ lsp_installer.on_server_ready(generic_handler)
+
+ local srv = server.Server:new {
+ name = "on_ready_fixture_failing",
+ root_dir = server.get_server_root_path "on_ready_fixture_failing",
+ installer = function(_, callback)
+ callback(false)
+ end,
+ default_options = {
+ cmd = { "my-server" },
+ },
+ }
+ srv:on_ready(on_ready_handler)
+ srv:install()
+ a.util.sleep(500)
+ assert.spy(on_ready_handler).was_not_called()
+ assert.spy(generic_handler).was_not_called()
+ assert.is_false(srv:is_installed())
+ end)
+end)