@krassowski/jupyterlab-lsp
Version:
Language Server Protocol integration for JupyterLab
38 lines • 1.63 kB
JavaScript
import { expect } from 'chai';
import { CodeMirrorIntegration } from './codemirror';
import { FileEditorFeatureTestEnvironment } from './testutils';
describe('CodeMirrorAdapter', () => {
let env;
beforeEach(() => (env = new FileEditorFeatureTestEnvironment()));
afterEach(() => env.dispose());
describe('Works with VirtualFileEditor', () => {
it('updates on change', async () => {
class UpdateReceivingFeature extends CodeMirrorIntegration {
constructor() {
super(...arguments);
this.received_update = false;
this.last_change = null;
}
afterChange(change, root_position) {
this.received_update = true;
this.last_change = change;
this.last_change_position = root_position;
}
}
await env.adapter.widget.context.initialize(true);
await env.adapter.widget.context.ready;
await env.adapter.initialized;
let feature = env.init_integration({
constructor: UpdateReceivingFeature,
id: 'UpdateReceivingFeature'
});
await env.adapter.update_finished;
expect(feature.received_update).to.equal(false);
env.ce_editor.model.value.text = 'fo';
await env.adapter.update_finished;
expect(feature.received_update).to.equal(true);
expect(feature.last_change.text[0]).to.equal('fo');
});
});
});
//# sourceMappingURL=cm_adapter.spec.js.map