UNPKG

@krassowski/jupyterlab-lsp

Version:

Language Server Protocol integration for JupyterLab

62 lines 2.27 kB
import { expect } from 'chai'; import { BrowserConsole } from '../../virtual/console'; import { transformLSPCompletions } from './completion_handler'; describe('transformLSPCompletions', () => { const browserConsole = new BrowserConsole(); const transform = (token, position, completions) => { return transformLSPCompletions(token, position, completions, (kind, match) => { return { kind, match }; }, browserConsole); }; it('Harmonizes `insertText` from `undefined` when adjusting path-like completions', () => { // `import { } from '@lumino/<TAB>'` const result = transform({ offset: 16, value: "'@lumino/'", type: 'string' }, 8, [ { label: 'algorithm', kind: 19, sortText: '1', data: { entryNames: ['algorithm'] } }, { label: 'application', kind: 19, sortText: '1', data: { entryNames: ['application'] } } ]); expect(result.items.length).to.equal(2); // insert text should keep `'` as it was part of original token expect(result.items[0].match.insertText).to.equal("'@lumino/algorithm"); // label should not include `'` expect(result.items[0].match.label).to.equal('@lumino/algorithm'); expect(result.source.name).to.equal('LSP'); }); it('Harmonizes `insertText` for paths', () => { // `'./Hov` const result = transform({ offset: 0, value: "'./Hov", type: 'string' }, 5, [ { label: "Hover.ipynb'", kind: 17, sortText: "aHover.ipynb'", insertText: "Hover.ipynb'" } ]); // insert text should keep `'` as it was part of original token expect(result.items[0].match.insertText).to.equal("'./Hover.ipynb'"); // label should not include initial `'` expect(result.items[0].match.label).to.equal("./Hover.ipynb'"); }); }); //# sourceMappingURL=completion_handler.spec.js.map