diff --git a/test/tclient/init.lua b/test/tclient/init.lua index f945d570e..4e05302b2 100644 --- a/test/tclient/init.lua +++ b/test/tclient/init.lua @@ -13,6 +13,7 @@ require 'tclient.tests.hover-set-local' require 'tclient.tests.same-prefix' require 'tclient.tests.recursive-runner' require 'tclient.tests.modify-luarc' +require 'tclient.tests.relative-library' require 'tclient.tests.performance-jass-common' require 'tclient.tests.build-meta' diff --git a/test/tclient/tests/relative-library.lua b/test/tclient/tests/relative-library.lua new file mode 100644 index 000000000..5628c0b41 --- /dev/null +++ b/test/tclient/tests/relative-library.lua @@ -0,0 +1,42 @@ +local lclient = require 'lclient' +local fs = require 'bee.filesystem' +local util = require 'utility' +local furi = require 'file-uri' +local ws = require 'workspace' +local files = require 'files' + +local rootPath = LOGPATH .. '/relative-library' +local rootUri = furi.encode(rootPath) + +for _, name in ipairs { 'src', 'lib' } do + fs.create_directories(fs.path(rootPath .. '/' .. name)) + util.saveFile(rootPath .. '/' .. name .. '/test.lua', '') +end + +---@async +lclient():start(function (client) + client:registerFakers() + + client:register('workspace/configuration', function () + return { + { + ['workspace.library'] = { + './lib', + } + } + } + end) + + client:initialize { + rootPath = rootPath, + rootUri = rootUri + } + + ws.awaitReady(rootUri .. '/src') + + assert(files.getState(rootUri .. '/src/test.lua') ~= nil) + assert(files.getState(rootUri .. '/lib/test.lua') ~= nil) + + assert(files.isLibrary(rootUri .. '/src/test.lua') == false) + assert(files.isLibrary(rootUri .. '/lib/test.lua') == true) +end)