diff options
Diffstat (limited to 'test/functional/server/server_spec.lua')
-rw-r--r-- | test/functional/server/server_spec.lua | 53 |
1 files changed, 45 insertions, 8 deletions
diff --git a/test/functional/server/server_spec.lua b/test/functional/server/server_spec.lua index 5dd8197d52..1cb3c879b9 100644 --- a/test/functional/server/server_spec.lua +++ b/test/functional/server/server_spec.lua @@ -4,19 +4,56 @@ local nvim, eq, neq, ok, eval = helpers.nvim, helpers.eq, helpers.neq, helpers.ok, helpers.eval local clear = helpers.clear -describe('server*() functions', function() +describe('serverstart(), serverstop()', function() before_each(clear) - it('set $NVIM_LISTEN_ADDRESS on first serverstart()', function() - -- Ensure the listen address is unset. + it('sets $NVIM_LISTEN_ADDRESS on first invocation', function() + -- Unset $NVIM_LISTEN_ADDRESS nvim('command', 'let $NVIM_LISTEN_ADDRESS = ""') - nvim('command', 'let s = serverstart()') - eq(1, eval('$NVIM_LISTEN_ADDRESS == s')) - nvim('command', 'call serverstop(s)') - eq(0, eval('$NVIM_LISTEN_ADDRESS == s')) + + local s = eval('serverstart()') + assert(s ~= nil and s:len() > 0, "serverstart() returned empty") + eq(s, eval('$NVIM_LISTEN_ADDRESS')) + nvim('command', "call serverstop('"..s.."')") + eq('', eval('$NVIM_LISTEN_ADDRESS')) + end) + + it([[sets v:servername _only_ on nvim startup + (unless all servers are stopped)]], function() + local initial_server = eval('v:servername') + assert(initial_server ~= nil and initial_server:len() > 0, + "v:servername was not initialized") + + -- v:servername is readonly so we cannot unset it--but we can test that it + -- does not get set again thereafter. + local s = eval('serverstart()') + assert(s ~= nil and s:len() > 0, "serverstart() returned empty") + neq(initial_server, s) + + -- serverstop() does _not_ modify v:servername... + nvim('command', "call serverstop('"..s.."')") + eq(initial_server, eval('v:servername')) + + -- ...unless we stop _all_ servers. + nvim('command', "call serverstop(serverlist()[0])") + eq('', eval('v:servername')) + + -- v:servername will take the next available server. + nvim('command', "call serverstart('test_server_socket')") + eq('test_server_socket', eval('v:servername')) end) - it('let the user retrieve the list of servers', function() + it('serverstop() ignores invalid input', function() + nvim('command', "call serverstop('')") + nvim('command', "call serverstop('bogus-socket-name')") + end) + +end) + +describe('serverlist()', function() + before_each(clear) + + it('returns the list of servers', function() -- There should already be at least one server. local n = eval('len(serverlist())') |