@krassowski/jupyterlab-lsp
Version:
Language Server Protocol integration for JupyterLab
61 lines (49 loc) • 1.6 kB
text/typescript
import { PageConfig } from '@jupyterlab/coreutils';
import { expect } from 'chai';
import * as lsProtocol from 'vscode-languageserver-protocol';
import { FileEditorFeatureTestEnvironment } from '../editor_integration/testutils';
import { RenameCM } from './rename';
describe('Rename', () => {
let env: FileEditorFeatureTestEnvironment;
beforeEach(() => {
env = new FileEditorFeatureTestEnvironment();
});
afterEach(() => env.dispose());
describe('Works with VirtualFileEditor', () => {
let feature: RenameCM;
beforeEach(
() =>
(feature = env.init_integration({
constructor: RenameCM,
id: 'Rename'
}))
);
afterEach(() => env.dispose_feature(feature));
PageConfig.setOption('rootUri', 'file://');
it('renames files', async () => {
env.ce_editor.model.value.text = 'x = 1\n';
await env.adapter.update_documents();
let main_document = env.virtual_editor.virtual_document;
await feature.handleRename(
{
changes: {
['file:///' + env.document_options.path]: [
{
range: {
start: { line: 0, character: 0 },
end: { line: 2, character: 0 }
},
newText: 'y = 1\n'
} as lsProtocol.TextEdit
]
}
},
'x',
'y'
);
await env.adapter.update_documents();
expect(env.status_message.message).to.be.equal('Renamed x to y');
expect(main_document.value).to.be.equal('y = 1\n');
});
});
});