|
| 1 | +let s:suite = themis#suite('Test for PowerShell Editor Services') |
| 2 | +let s:assert = themis#helper('assert') |
| 3 | + |
| 4 | +function s:suite.before() |
| 5 | + let l:pses_path = g:repo_root . '/module' |
| 6 | + let g:LanguageClient_serverCommands = { |
| 7 | + \ 'ps1': ['pwsh', '-NoLogo', '-NoProfile', '-Command', |
| 8 | + \ l:pses_path . '/PowerShellEditorServices/Start-EditorServices.ps1', |
| 9 | + \ '-HostName', 'vim', '-HostProfileId', 'vim', '-HostVersion', '1.0.0', |
| 10 | + \ '-BundledModulesPath', l:pses_path, '-Stdio', |
| 11 | + \ '-LogPath', g:repo_root . '/pses.log', '-LogLevel', 'Diagnostic', |
| 12 | + \ '-SessionDetailsPath', g:repo_root . '/pses_session.json' ] |
| 13 | + \ } |
| 14 | + let g:LanguageClient_serverStderr = 'DEBUG' |
| 15 | + let g:LanguageClient_loggingFile = g:repo_root . '/LanguageClient.log' |
| 16 | + let g:LanguageClient_serverStderr = g:repo_root . '/LanguageServer.log' |
| 17 | +endfunction |
| 18 | + |
| 19 | +function s:suite.has_language_client() |
| 20 | + call s:assert.includes(&runtimepath, g:repo_root . '/LanguageClient-neovim') |
| 21 | + call s:assert.cmd_exists('LanguageClientStart') |
| 22 | + call s:assert.not_empty(g:LanguageClient_serverCommands) |
| 23 | + call s:assert.true(LanguageClient#HasCommand('ps1')) |
| 24 | +endfunction |
| 25 | + |
| 26 | +function s:suite.analyzes_powershell_file() |
| 27 | + view test/vim-test.ps1 " This must not use quotes! |
| 28 | + |
| 29 | + let l:bufnr = bufnr('vim-test.ps1$') |
| 30 | + call s:assert.not_equal(l:bufnr, -1) |
| 31 | + let l:bufinfo = getbufinfo(l:bufnr)[0] |
| 32 | + |
| 33 | + call s:assert.equal(l:bufinfo.name, g:repo_root . '/test/vim-test.ps1') |
| 34 | + call s:assert.includes(getbufline(l:bufinfo.name, 1), 'function Do-Work {}') |
| 35 | + call s:assert.equal(getbufvar(l:bufinfo.bufnr, '&filetype'), 'ps1') |
| 36 | + |
| 37 | + execute 'LanguageClientStart' |
| 38 | + execute 'sleep' 5 |
| 39 | + call s:assert.equal(getbufvar(l:bufinfo.name, 'LanguageClient_isServerRunning'), 1) |
| 40 | + call s:assert.equal(getbufvar(l:bufinfo.name, 'LanguageClient_projectRoot'), g:repo_root) |
| 41 | + call s:assert.equal(getbufvar(l:bufinfo.name, 'LanguageClient_statusLineDiagnosticsCounts'), {'E': 0, 'W': 1, 'H': 0, 'I': 0}) |
| 42 | +endfunction |
0 commit comments