From d7e233566543d4c83199f5644f90bb116d7070f2 Mon Sep 17 00:00:00 2001 From: William Boman Date: Sat, 25 Dec 2021 15:11:42 +0100 Subject: add some tests (#360) --- tests/server_spec.lua | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 tests/server_spec.lua (limited to 'tests/server_spec.lua') 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) -- cgit v1.2.3-70-g09d2