diff options
| author | William Boman <william@redwill.se> | 2021-12-25 15:11:42 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-25 15:11:42 +0100 |
| commit | d7e233566543d4c83199f5644f90bb116d7070f2 (patch) | |
| tree | ecfcb6e5abb937ee976eed6daac1bf2ab3bac51d /tests/server_spec.lua | |
| parent | fix: dont pass nil opts (diff) | |
| download | mason-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.lua | 56 |
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) |
