瀏覽代碼

Fix tests.

Afshin Darian 8 年之前
父節點
當前提交
1863ae45a6

+ 88 - 75
test/src/notebook/completion/handler.spec.ts → test/src/completer/handler.spec.ts

@@ -13,22 +13,22 @@ import {
 
 import {
   BaseCellWidget, CellModel
-} from '../../../../lib/notebook/cells';
+} from '../../../lib/notebook/cells';
 
 import {
   ICompletionRequest, ICellEditorWidget, ITextChange
-} from '../../../../lib/notebook/cells/editor';
+} from '../../../lib/notebook/cells/editor';
 
 import {
-  CompletionWidget, CellCompletionHandler, CompletionModel, ICompletionPatch
-} from '../../../../lib/notebook/completion';
+  CompleterWidget, CellCompleterHandler, CompleterModel, ICompletionPatch
+} from '../../../lib/completer';
 
 import {
   CodeMirrorCodeCellWidgetRenderer
-} from '../../../../lib/notebook/codemirror/cells/widget';
+} from '../../../lib/notebook/codemirror/cells/widget';
 
 
-class TestCompletionModel extends CompletionModel {
+class TestCompleterModel extends CompleterModel {
   methods: string[] = [];
 
   createPatch(patch: string): ICompletionPatch {
@@ -43,7 +43,7 @@ class TestCompletionModel extends CompletionModel {
 }
 
 
-class TestCompletionHandler extends CellCompletionHandler {
+class TestCompleterHandler extends CellCompleterHandler {
   methods: string[] = [];
 
   makeRequest(request: ICompletionRequest): Promise<void> {
@@ -67,22 +67,22 @@ class TestCompletionHandler extends CellCompletionHandler {
     this.methods.push('onCompletionRequested');
   }
 
-  onCompletionSelected(widget: CompletionWidget, value: string): void {
+  onCompletionSelected(widget: CompleterWidget, value: string): void {
     super.onCompletionSelected(widget, value);
     this.methods.push('onCompletionSelected');
   }
 }
 
 
-describe('notebook/completion/handler', () => {
+describe('completer/handler', () => {
 
-  describe('CellCompletionHandler', () => {
+  describe('CellCompleterHandler', () => {
 
     describe('#constructor()', () => {
 
-      it('should create a completion handler', () => {
-        let handler = new CellCompletionHandler(new CompletionWidget());
-        expect(handler).to.be.a(CellCompletionHandler);
+      it('should create a completer handler', () => {
+        let handler = new CellCompleterHandler(new CompleterWidget());
+        expect(handler).to.be.a(CellCompleterHandler);
       });
 
     });
@@ -90,12 +90,12 @@ describe('notebook/completion/handler', () => {
     describe('#kernel', () => {
 
       it('should default to null', () => {
-        let handler = new CellCompletionHandler(new CompletionWidget());
+        let handler = new CellCompleterHandler(new CompleterWidget());
         expect(handler.kernel).to.be(null);
       });
 
       it('should be settable', () => {
-        let handler = new CellCompletionHandler(new CompletionWidget());
+        let handler = new CellCompleterHandler(new CompleterWidget());
         let kernel = new MockKernel();
         expect(handler.kernel).to.be(null);
         handler.kernel = kernel;
@@ -109,13 +109,15 @@ describe('notebook/completion/handler', () => {
     describe('#activeCell', () => {
 
       it('should default to null', () => {
-        let handler = new CellCompletionHandler(new CompletionWidget());
+        let handler = new CellCompleterHandler(new CompleterWidget());
         expect(handler.activeCell).to.be(null);
       });
 
       it('should be settable', () => {
-        let handler = new CellCompletionHandler(new CompletionWidget());
-        let cell = new BaseCellWidget({renderer:CodeMirrorCodeCellWidgetRenderer.defaultRenderer});
+        let handler = new CellCompleterHandler(new CompleterWidget());
+        let cell = new BaseCellWidget({
+          renderer: CodeMirrorCodeCellWidgetRenderer.defaultRenderer
+        });
         expect(handler.activeCell).to.be(null);
         handler.activeCell = cell;
         expect(handler.activeCell).to.be.a(BaseCellWidget);
@@ -123,9 +125,13 @@ describe('notebook/completion/handler', () => {
       });
 
       it('should be resettable', () => {
-        let handler = new CellCompletionHandler(new CompletionWidget());
-        let one = new BaseCellWidget({renderer:CodeMirrorCodeCellWidgetRenderer.defaultRenderer});
-        let two = new BaseCellWidget({renderer:CodeMirrorCodeCellWidgetRenderer.defaultRenderer});
+        let handler = new CellCompleterHandler(new CompleterWidget());
+        let one = new BaseCellWidget({
+          renderer: CodeMirrorCodeCellWidgetRenderer.defaultRenderer
+        });
+        let two = new BaseCellWidget({
+          renderer: CodeMirrorCodeCellWidgetRenderer.defaultRenderer
+        });
         expect(handler.activeCell).to.be(null);
         handler.activeCell = one;
         expect(handler.activeCell).to.be.a(BaseCellWidget);
@@ -140,7 +146,7 @@ describe('notebook/completion/handler', () => {
     describe('#isDisposed', () => {
 
       it('should be true if handler has been disposed', () => {
-        let handler = new CellCompletionHandler(new CompletionWidget());
+        let handler = new CellCompleterHandler(new CompleterWidget());
         expect(handler.isDisposed).to.be(false);
         handler.dispose();
         expect(handler.isDisposed).to.be(true);
@@ -151,7 +157,7 @@ describe('notebook/completion/handler', () => {
     describe('#dispose()', () => {
 
       it('should dispose of the handler resources', () => {
-        let handler = new CellCompletionHandler(new CompletionWidget());
+        let handler = new CellCompleterHandler(new CompleterWidget());
         let kernel = new MockKernel();
         handler.kernel = kernel;
         expect(handler.isDisposed).to.be(false);
@@ -162,7 +168,7 @@ describe('notebook/completion/handler', () => {
       });
 
       it('should be safe to call multiple times', () => {
-        let handler = new CellCompletionHandler(new CompletionWidget());
+        let handler = new CellCompleterHandler(new CompleterWidget());
         expect(handler.isDisposed).to.be(false);
         handler.dispose();
         handler.dispose();
@@ -174,7 +180,7 @@ describe('notebook/completion/handler', () => {
     describe('#makeRequest()', () => {
 
       it('should reject if handler has no kernel', (done) => {
-        let handler = new TestCompletionHandler(new CompletionWidget());
+        let handler = new TestCompleterHandler(new CompleterWidget());
         let request: ICompletionRequest = {
           ch: 0,
           chHeight: 0,
@@ -193,7 +199,7 @@ describe('notebook/completion/handler', () => {
       // TODO: This test needs to be fixed when MockKernel is updated.
       it('should resolve if handler has a kernel', () => {
         console.warn('This test needs to be fixed when MockKernel is updated.');
-        let handler = new TestCompletionHandler(new CompletionWidget());
+        let handler = new TestCompleterHandler(new CompleterWidget());
         let kernel = new MockKernel();
         let request: ICompletionRequest = {
           ch: 0,
@@ -213,27 +219,27 @@ describe('notebook/completion/handler', () => {
     describe('#onReply()', () => {
 
       it('should do nothing if handler has been disposed', () => {
-        let completion = new CompletionWidget();
-        let handler = new TestCompletionHandler(completion);
-        completion.model = new CompletionModel();
-        completion.model.options = ['foo', 'bar', 'baz'];
+        let completer = new CompleterWidget();
+        let handler = new TestCompleterHandler(completer);
+        completer.model = new CompleterModel();
+        completer.model.options = ['foo', 'bar', 'baz'];
         handler.dispose();
         handler.onReply(0, null, null);
-        expect(completion.model).to.be.ok();
+        expect(completer.model).to.be.ok();
       });
 
       it('should do nothing if pending request ID does not match', () => {
-        let completion = new CompletionWidget();
-        let handler = new TestCompletionHandler(completion);
-        completion.model = new CompletionModel();
-        completion.model.options = ['foo', 'bar', 'baz'];
+        let completer = new CompleterWidget();
+        let handler = new TestCompleterHandler(completer);
+        completer.model = new CompleterModel();
+        completer.model.options = ['foo', 'bar', 'baz'];
         handler.onReply(2, null, null);
-        expect(completion.model).to.be.ok();
+        expect(completer.model).to.be.ok();
       });
 
       it('should reset model if status is not ok', () => {
-        let completion = new CompletionWidget();
-        let handler = new TestCompletionHandler(completion);
+        let completer = new CompleterWidget();
+        let handler = new TestCompleterHandler(completer);
         let options = ['a', 'b', 'c'];
         let request: ICompletionRequest = {
           ch: 0,
@@ -258,16 +264,16 @@ describe('notebook/completion/handler', () => {
             matches: ['foo']
           }
         };
-        completion.model = new CompletionModel();
-        completion.model.options = options;
-        expect(completion.model.options).to.eql(options);
+        completer.model = new CompleterModel();
+        completer.model.options = options;
+        expect(completer.model.options).to.eql(options);
         handler.onReply(0, request, reply);
-        expect(completion.model.options).to.be(null);
+        expect(completer.model.options).to.be(null);
       });
 
       it('should update model if status is ok', () => {
-        let completion = new CompletionWidget();
-        let handler = new TestCompletionHandler(completion);
+        let completer = new CompleterWidget();
+        let handler = new TestCompleterHandler(completer);
         let options = ['a', 'b', 'c'];
         let request: ICompletionRequest = {
           ch: 0,
@@ -292,11 +298,11 @@ describe('notebook/completion/handler', () => {
             matches: ['foo']
           }
         };
-        completion.model = new CompletionModel();
-        completion.model.options = options;
-        expect(completion.model.options).to.eql(options);
+        completer.model = new CompleterModel();
+        completer.model.options = options;
+        expect(completer.model.options).to.eql(options);
         handler.onReply(0, request, reply);
-        expect(completion.model.options).to.eql(reply.content.matches);
+        expect(completer.model.options).to.eql(reply.content.matches);
       });
 
     });
@@ -304,7 +310,7 @@ describe('notebook/completion/handler', () => {
     describe('#onTextChanged()', () => {
 
       it('should fire when the active editor emits a text change', () => {
-        let handler = new TestCompletionHandler(new CompletionWidget());
+        let handler = new TestCompleterHandler(new CompleterWidget());
         let change: ITextChange = {
           ch: 0,
           chHeight: 0,
@@ -315,7 +321,9 @@ describe('notebook/completion/handler', () => {
           oldValue: 'fo',
           newValue: 'foo'
         };
-        let cell = new BaseCellWidget({renderer:CodeMirrorCodeCellWidgetRenderer.defaultRenderer});
+        let cell = new BaseCellWidget({
+          renderer: CodeMirrorCodeCellWidgetRenderer.defaultRenderer
+        });
 
         handler.activeCell = cell;
         expect(handler.methods).to.not.contain('onTextChanged');
@@ -324,10 +332,10 @@ describe('notebook/completion/handler', () => {
       });
 
       it('should call model change handler if model exists', () => {
-        let completion = new CompletionWidget({
-          model: new TestCompletionModel()
+        let completer = new CompleterWidget({
+          model: new TestCompleterModel()
         });
-        let handler = new TestCompletionHandler(completion);
+        let handler = new TestCompleterHandler(completer);
         let change: ITextChange = {
           ch: 0,
           chHeight: 0,
@@ -338,8 +346,10 @@ describe('notebook/completion/handler', () => {
           oldValue: 'fo',
           newValue: 'foo'
         };
-        let cell = new BaseCellWidget({renderer:CodeMirrorCodeCellWidgetRenderer.defaultRenderer});
-        let model = completion.model as TestCompletionModel;
+        let cell = new BaseCellWidget({
+          renderer: CodeMirrorCodeCellWidgetRenderer.defaultRenderer
+        });
+        let model = completer.model as TestCompleterModel;
 
         handler.activeCell = cell;
         expect(model.methods).to.not.contain('handleTextChange');
@@ -352,7 +362,7 @@ describe('notebook/completion/handler', () => {
     describe('#onCompletionRequested()', () => {
 
       it('should fire when the active editor emits a request', () => {
-        let handler = new TestCompletionHandler(new CompletionWidget());
+        let handler = new TestCompleterHandler(new CompleterWidget());
         let request: ICompletionRequest = {
           ch: 0,
           chHeight: 0,
@@ -362,7 +372,9 @@ describe('notebook/completion/handler', () => {
           position: 0,
           currentValue: 'foo'
         };
-        let cell = new BaseCellWidget({renderer:CodeMirrorCodeCellWidgetRenderer.defaultRenderer});
+        let cell = new BaseCellWidget({
+          renderer: CodeMirrorCodeCellWidgetRenderer.defaultRenderer
+        });
 
         handler.activeCell = cell;
         expect(handler.methods).to.not.contain('onCompletionRequested');
@@ -371,10 +383,10 @@ describe('notebook/completion/handler', () => {
       });
 
       it('should make a kernel request if kernel and model exist', () => {
-        let completion = new CompletionWidget({
-          model: new TestCompletionModel()
+        let completer = new CompleterWidget({
+          model: new TestCompleterModel()
         });
-        let handler = new TestCompletionHandler(completion);
+        let handler = new TestCompleterHandler(completer);
         let request: ICompletionRequest = {
           ch: 0,
           chHeight: 0,
@@ -384,8 +396,9 @@ describe('notebook/completion/handler', () => {
           position: 0,
           currentValue: 'foo'
         };
-        let cell = new BaseCellWidget({renderer:CodeMirrorCodeCellWidgetRenderer.defaultRenderer});
-        let model = completion.model as TestCompletionModel;
+        let cell = new BaseCellWidget({
+          renderer: CodeMirrorCodeCellWidgetRenderer.defaultRenderer
+        });
 
         handler.kernel = new MockKernel();
         handler.activeCell = cell;
@@ -398,34 +411,34 @@ describe('notebook/completion/handler', () => {
 
     describe('#onCompletionSelected()', () => {
 
-      it('should fire when the completion widget emits a signal', () => {
-        let completion = new CompletionWidget();
-        let handler = new TestCompletionHandler(completion);
+      it('should fire when the completer widget emits a signal', () => {
+        let completer = new CompleterWidget();
+        let handler = new TestCompleterHandler(completer);
 
         expect(handler.methods).to.not.contain('onCompletionSelected');
-        completion.selected.emit('foo');
+        completer.selected.emit('foo');
         expect(handler.methods).to.contain('onCompletionSelected');
       });
 
       it('should call model create patch method if model exists', () => {
-        let completion = new CompletionWidget({
-          model: new TestCompletionModel()
+        let completer = new CompleterWidget({
+          model: new TestCompleterModel()
         });
-        let handler = new TestCompletionHandler(completion);
-        let model = completion.model as TestCompletionModel;
+        let handler = new TestCompleterHandler(completer);
+        let model = completer.model as TestCompleterModel;
         let renderer = CodeMirrorCodeCellWidgetRenderer.defaultRenderer;
 
         handler.activeCell = new BaseCellWidget({ renderer });
         expect(model.methods).to.not.contain('createPatch');
-        completion.selected.emit('foo');
+        completer.selected.emit('foo');
         expect(model.methods).to.contain('createPatch');
       });
 
       it('should update cell if patch exists', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let patch = 'foobar';
-        let completion = new CompletionWidget({ model });
-        let handler = new TestCompletionHandler(completion);
+        let completer = new CompleterWidget({ model });
+        let handler = new TestCompleterHandler(completer);
         let renderer = CodeMirrorCodeCellWidgetRenderer.defaultRenderer;
         let cell = new BaseCellWidget({ renderer });
         let request: ICompletionRequest = {
@@ -443,7 +456,7 @@ describe('notebook/completion/handler', () => {
         handler.activeCell.model.source = request.currentValue;
         model.original = request;
         model.cursor = { start: 0, end: 3 };
-        completion.selected.emit(patch);
+        completer.selected.emit(patch);
         expect(handler.activeCell.model.source).to.equal(patch);
       });
 

+ 40 - 40
test/src/notebook/completion/model.spec.ts → test/src/completer/model.spec.ts

@@ -4,23 +4,23 @@
 import expect = require('expect.js');
 
 import {
-  CompletionModel, ICursorSpan, ICompletionItem, ICompletionPatch
-} from '../../../../lib/notebook/completion';
+  CompleterModel, ICursorSpan, ICompleterItem, ICompletionPatch
+} from '../../../lib/completer';
 
 import {
   ICompletionRequest, ICoords, ITextChange
-} from '../../../../lib/notebook/cells/editor';
+} from '../../../lib/notebook/cells/editor';
 
 
-describe('notebook/completion/model', () => {
+describe('completer/model', () => {
 
-  describe('CompletionModel', () => {
+  describe('CompleterModel', () => {
 
     describe('#constructor()', () => {
 
-      it('should create a completion model', () => {
-        let model = new CompletionModel();
-        expect(model).to.be.a(CompletionModel);
+      it('should create a completer model', () => {
+        let model = new CompleterModel();
+        expect(model).to.be.a(CompleterModel);
       });
 
     });
@@ -28,7 +28,7 @@ describe('notebook/completion/model', () => {
     describe('#stateChanged', () => {
 
       it('should signal when model options have changed', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let called = 0;
         let listener = (sender: any, args: void) => { called++; };
         model.stateChanged.connect(listener);
@@ -40,7 +40,7 @@ describe('notebook/completion/model', () => {
       });
 
       it('should not signal when options have not changed', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let called = 0;
         let listener = (sender: any, args: void) => { called++; };
         model.stateChanged.connect(listener);
@@ -54,7 +54,7 @@ describe('notebook/completion/model', () => {
       });
 
       it('should signal when original request changes', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let called = 0;
         let request: ICompletionRequest = {
           ch: 0,
@@ -75,7 +75,7 @@ describe('notebook/completion/model', () => {
       });
 
       it('should not signal when original request has not changed', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let called = 0;
         let request: ICompletionRequest = {
           ch: 0,
@@ -98,7 +98,7 @@ describe('notebook/completion/model', () => {
       });
 
       it('should signal when current text changes', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let called = 0;
         let currentValue = 'foo';
         let oldValue = currentValue;
@@ -135,7 +135,7 @@ describe('notebook/completion/model', () => {
       });
 
       it('should not signal when current text has not change', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let called = 0;
         let currentValue = 'foo';
         let oldValue = currentValue;
@@ -178,8 +178,8 @@ describe('notebook/completion/model', () => {
     describe('#items', () => {
 
       it('should return an unfiltered list of items if query is blank', () => {
-        let model = new CompletionModel();
-        let want: ICompletionItem[] = [
+        let model = new CompleterModel();
+        let want: ICompleterItem[] = [
           { raw: 'foo', text: 'foo' },
           { raw: 'bar', text: 'bar' },
           { raw: 'baz', text: 'baz' }
@@ -189,8 +189,8 @@ describe('notebook/completion/model', () => {
       });
 
       it('should return a filtered list of items if query is set', () => {
-        let model = new CompletionModel();
-        let want: ICompletionItem[] = [
+        let model = new CompleterModel();
+        let want: ICompleterItem[] = [
           { raw: 'foo', text: '<mark>f</mark>oo' }
         ];
         model.options = ['foo', 'bar', 'baz'];
@@ -199,8 +199,8 @@ describe('notebook/completion/model', () => {
       });
 
       it('should order list based on score', () => {
-        let model = new CompletionModel();
-        let want: ICompletionItem[] = [
+        let model = new CompleterModel();
+        let want: ICompleterItem[] = [
           { raw: 'qux', text: '<mark>qux</mark>' },
           { raw: 'quux', text: '<mark>qu</mark>u<mark>x</mark>' }
         ];
@@ -210,8 +210,8 @@ describe('notebook/completion/model', () => {
       });
 
       it('should break ties in score by locale sort', () => {
-        let model = new CompletionModel();
-        let want: ICompletionItem[] = [
+        let model = new CompleterModel();
+        let want: ICompleterItem[] = [
           { raw: 'quux', text: '<mark>qu</mark>ux' },
           { raw: 'qux', text: '<mark>qu</mark>x' }
         ];
@@ -225,12 +225,12 @@ describe('notebook/completion/model', () => {
     describe('#options', () => {
 
       it('should default to null', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         expect(model.options).to.be(null);
       });
 
       it('should return model options', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let options = ['foo'];
         model.options = options;
         expect(model.options).to.not.equal(options);
@@ -242,12 +242,12 @@ describe('notebook/completion/model', () => {
     describe('#original', () => {
 
       it('should default to null', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         expect(model.original).to.be(null);
       });
 
       it('should return the original request', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let request: ICompletionRequest = {
           ch: 0,
           chHeight: 0,
@@ -266,12 +266,12 @@ describe('notebook/completion/model', () => {
     describe('#current', () => {
 
       it('should default to null', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         expect(model.current).to.be(null);
       });
 
       it('should not set if original request is nonexistent', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let currentValue = 'foo';
         let oldValue = currentValue;
         let newValue = 'foob';
@@ -303,7 +303,7 @@ describe('notebook/completion/model', () => {
       });
 
       it('should not set if cursor is nonexistent', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let currentValue = 'foo';
         let oldValue = currentValue;
         let newValue = 'foob';
@@ -335,7 +335,7 @@ describe('notebook/completion/model', () => {
       });
 
       it('should reset model if change is shorter than original', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let currentValue = 'foo';
         let oldValue = currentValue;
         let newValue = 'fo';
@@ -371,12 +371,12 @@ describe('notebook/completion/model', () => {
     describe('#cursor', () => {
 
       it('should default to null', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         expect(model.cursor).to.be(null);
       });
 
       it('should not set if original request is nonexistent', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let cursor: ICursorSpan = { start: 0, end: 0 };
         let request: ICompletionRequest = {
           ch: 0,
@@ -399,7 +399,7 @@ describe('notebook/completion/model', () => {
     describe('#isDisposed', () => {
 
       it('should be true if model has been disposed', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         expect(model.isDisposed).to.be(false);
         model.dispose();
         expect(model.isDisposed).to.be(true);
@@ -410,7 +410,7 @@ describe('notebook/completion/model', () => {
     describe('#dispose()', () => {
 
       it('should dispose of the model resources', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         model.options = ['foo'];
         expect(model.isDisposed).to.be(false);
         expect(model.options).to.be.ok();
@@ -420,7 +420,7 @@ describe('notebook/completion/model', () => {
       });
 
       it('should be safe to call multiple times', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         expect(model.isDisposed).to.be(false);
         model.dispose();
         model.dispose();
@@ -432,7 +432,7 @@ describe('notebook/completion/model', () => {
     describe('#handleTextChange()', () => {
 
       it('should set current change value', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let currentValue = 'foo';
         let oldValue = currentValue;
         let newValue = 'foob';
@@ -463,7 +463,7 @@ describe('notebook/completion/model', () => {
       });
 
       it('should reset model if last character of change is whitespace', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let currentValue = 'foo';
         let oldValue = currentValue;
         let newValue = 'foo ';
@@ -496,7 +496,7 @@ describe('notebook/completion/model', () => {
     describe('#createPatch()', () => {
 
       it('should return a patch value', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let patch = 'foobar';
         let want: ICompletionPatch = { text: patch, position: patch.length };
         let cursor: ICursorSpan = { start: 0, end: 3 };
@@ -515,12 +515,12 @@ describe('notebook/completion/model', () => {
       });
 
       it('should return null if original request or cursor are null', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         expect(model.createPatch('foo')).to.be(null);
       });
 
       it('should handle line breaks in original value', () => {
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let currentValue = 'foo\nbar';
         let patch = 'barbaz';
         let want: ICompletionPatch = { text: 'foo\nbarbaz', position: 10 };

+ 81 - 81
test/src/notebook/completion/widget.spec.ts → test/src/completer/widget.spec.ts

@@ -17,24 +17,24 @@ import {
 
 import {
   ICompletionRequest, ICoords
-} from '../../../../lib/notebook/cells/editor';
+} from '../../../lib/notebook/cells/editor';
 
 import {
-  CompletionWidget, CompletionModel, ICompletionItem
-} from '../../../../lib/notebook/completion';
+  CompleterWidget, CompleterModel, ICompleterItem
+} from '../../../lib/completer';
 
 
 const TEST_ITEM_CLASS = 'jp-TestItem';
 
-const ITEM_CLASS = 'jp-Completion-item';
+const ITEM_CLASS = 'jp-Completer-item';
 
 const ACTIVE_CLASS = 'jp-mod-active';
 
 const MAX_HEIGHT = 250;
 
 
-class CustomRenderer extends CompletionWidget.Renderer {
-  createItemNode(item: ICompletionItem): HTMLLIElement {
+class CustomRenderer extends CompleterWidget.Renderer {
+  createItemNode(item: ICompleterItem): HTMLLIElement {
     let li = super.createItemNode(item);
     li.classList.add(TEST_ITEM_CLASS);
     return li;
@@ -42,7 +42,7 @@ class CustomRenderer extends CompletionWidget.Renderer {
 }
 
 
-class LogWidget extends CompletionWidget {
+class LogWidget extends CompleterWidget {
   events: string[] = [];
 
   methods: string[] = [];
@@ -64,36 +64,36 @@ class LogWidget extends CompletionWidget {
 }
 
 
-describe('notebook/completion/widget', () => {
+describe('completer/widget', () => {
 
-  describe('CompletionWidget', () => {
+  describe('CompleterWidget', () => {
 
     describe('#constructor()', () => {
 
-      it('should create a completion widget', () => {
-        let widget = new CompletionWidget();
-        expect(widget).to.be.a(CompletionWidget);
-        expect(widget.node.classList).to.contain('jp-Completion');
+      it('should create a completer widget', () => {
+        let widget = new CompleterWidget();
+        expect(widget).to.be.a(CompleterWidget);
+        expect(widget.node.classList).to.contain('jp-Completer');
       });
 
       it('should accept options with a model', () => {
-        let options: CompletionWidget.IOptions = {
-          model: new CompletionModel()
+        let options: CompleterWidget.IOptions = {
+          model: new CompleterModel()
         };
-        let widget = new CompletionWidget(options);
-        expect(widget).to.be.a(CompletionWidget);
+        let widget = new CompleterWidget(options);
+        expect(widget).to.be.a(CompleterWidget);
         expect(widget.model).to.equal(options.model);
       });
 
       it('should accept options with a renderer', () => {
-        let options: CompletionWidget.IOptions = {
-          model: new CompletionModel(),
+        let options: CompleterWidget.IOptions = {
+          model: new CompleterModel(),
           renderer: new CustomRenderer()
         };
         options.model.options = ['foo', 'bar'];
 
-        let widget = new CompletionWidget(options);
-        expect(widget).to.be.a(CompletionWidget);
+        let widget = new CompleterWidget(options);
+        expect(widget).to.be.a(CompleterWidget);
         sendMessage(widget, WidgetMessage.UpdateRequest);
 
         let items = widget.node.querySelectorAll(`.${ITEM_CLASS}`);
@@ -107,8 +107,8 @@ describe('notebook/completion/widget', () => {
 
       it('should emit a signal when an item is selected', () => {
         let anchor = new Widget();
-        let options: CompletionWidget.IOptions = {
-          model: new CompletionModel(),
+        let options: CompleterWidget.IOptions = {
+          model: new CompleterModel(),
           anchor: anchor.node
         };
         let value = '';
@@ -116,7 +116,7 @@ describe('notebook/completion/widget', () => {
         options.model.options = ['foo', 'bar'];
         Widget.attach(anchor, document.body);
 
-        let widget = new CompletionWidget(options);
+        let widget = new CompleterWidget(options);
 
         widget.selected.connect(listener);
         Widget.attach(widget, document.body);
@@ -132,10 +132,10 @@ describe('notebook/completion/widget', () => {
 
     describe('#visibilityChanged', () => {
 
-      it('should emit a signal when completion visibility changes', () => {
+      it('should emit a signal when completer visibility changes', () => {
         let anchor = new Widget();
-        let options: CompletionWidget.IOptions = {
-          model: new CompletionModel(),
+        let options: CompleterWidget.IOptions = {
+          model: new CompleterModel(),
           anchor: anchor.node
         };
         let called = false;
@@ -143,7 +143,7 @@ describe('notebook/completion/widget', () => {
         options.model.options = ['foo', 'bar'];
         Widget.attach(anchor, document.body);
 
-        let widget = new CompletionWidget(options);
+        let widget = new CompleterWidget(options);
 
         widget.visibilityChanged.connect(listener);
         expect(called).to.be(false);
@@ -159,28 +159,28 @@ describe('notebook/completion/widget', () => {
     describe('#model', () => {
 
       it('should default to null', () => {
-        let widget = new CompletionWidget();
+        let widget = new CompleterWidget();
         expect(widget.model).to.be(null);
       });
 
       it('should be settable', () => {
-        let widget = new CompletionWidget();
+        let widget = new CompleterWidget();
         expect(widget.model).to.be(null);
-        widget.model = new CompletionModel();
-        expect(widget.model).to.be.a(CompletionModel);
+        widget.model = new CompleterModel();
+        expect(widget.model).to.be.a(CompleterModel);
       });
 
       it('should be safe to set multiple times', () => {
-        let model = new CompletionModel();
-        let widget = new CompletionWidget();
+        let model = new CompleterModel();
+        let widget = new CompleterWidget();
         widget.model = model;
         widget.model = model;
         expect(widget.model).to.be(model);
       });
 
       it('should be safe to reset', () => {
-        let model = new CompletionModel();
-        let widget = new CompletionWidget({ model: new CompletionModel() });
+        let model = new CompleterModel();
+        let widget = new CompleterWidget({ model: new CompleterModel() });
         expect(widget.model).not.to.be(model);
         widget.model = model;
         expect(widget.model).to.be(model);
@@ -191,12 +191,12 @@ describe('notebook/completion/widget', () => {
     describe('#anchor', () => {
 
       it('should default to null', () => {
-        let widget = new CompletionWidget();
+        let widget = new CompleterWidget();
         expect(widget.anchor).to.be(null);
       });
 
       it('should be settable', () => {
-        let widget = new CompletionWidget();
+        let widget = new CompleterWidget();
         expect(widget.anchor).to.be(null);
         widget.anchor = new Widget().node;
         expect(widget.anchor).to.be.a(Node);
@@ -204,7 +204,7 @@ describe('notebook/completion/widget', () => {
 
       it('should be safe to reset', () => {
         let anchor = new Widget();
-        let widget = new CompletionWidget({ anchor: (new Widget()).node });
+        let widget = new CompleterWidget({ anchor: (new Widget()).node });
         expect(widget.anchor).not.to.be(anchor.node);
         widget.anchor = anchor.node;
         expect(widget.anchor).to.be(anchor.node);
@@ -215,13 +215,13 @@ describe('notebook/completion/widget', () => {
     describe('#dispose()', () => {
 
       it('should dispose of the resources held by the widget', () => {
-        let widget = new CompletionWidget();
+        let widget = new CompleterWidget();
         widget.dispose();
         expect(widget.isDisposed).to.be(true);
       });
 
       it('should be safe to call multiple times', () => {
-        let widget = new CompletionWidget();
+        let widget = new CompleterWidget();
         widget.dispose();
         widget.dispose();
         expect(widget.isDisposed).to.be(true);
@@ -231,16 +231,16 @@ describe('notebook/completion/widget', () => {
 
     describe('#reset()', () => {
 
-      it('should reset the completion widget', () => {
+      it('should reset the completer widget', () => {
         let anchor = new Widget();
-        let model = new CompletionModel();
-        let options: CompletionWidget.IOptions = {
+        let model = new CompleterModel();
+        let options: CompleterWidget.IOptions = {
           model, anchor: anchor.node
         };
         model.options = ['foo', 'bar'];
         Widget.attach(anchor, document.body);
 
-        let widget = new CompletionWidget(options);
+        let widget = new CompleterWidget(options);
 
         Widget.attach(widget, document.body);
         sendMessage(widget, WidgetMessage.UpdateRequest);
@@ -281,14 +281,14 @@ describe('notebook/completion/widget', () => {
 
         it('should reset if keydown is outside anchor', () => {
           let anchor = new Widget();
-          let model = new CompletionModel();
-          let options: CompletionWidget.IOptions = {
+          let model = new CompleterModel();
+          let options: CompleterWidget.IOptions = {
             model, anchor: anchor.node
           };
           model.options = ['foo', 'bar'];
           Widget.attach(anchor, document.body);
 
-          let widget = new CompletionWidget(options);
+          let widget = new CompleterWidget(options);
 
           Widget.attach(widget, document.body);
           sendMessage(widget, WidgetMessage.UpdateRequest);
@@ -304,8 +304,8 @@ describe('notebook/completion/widget', () => {
 
         it('should trigger a selected signal on enter key', () => {
           let anchor = new Widget();
-          let model = new CompletionModel();
-          let options: CompletionWidget.IOptions = {
+          let model = new CompleterModel();
+          let options: CompleterWidget.IOptions = {
             model, anchor: anchor.node
           };
           let value = '';
@@ -315,7 +315,7 @@ describe('notebook/completion/widget', () => {
           model.options = ['foo', 'bar', 'baz'];
           Widget.attach(anchor, document.body);
 
-          let widget = new CompletionWidget(options);
+          let widget = new CompleterWidget(options);
 
           widget.selected.connect(listener);
           Widget.attach(widget, document.body);
@@ -329,14 +329,14 @@ describe('notebook/completion/widget', () => {
 
         it('should select the item below and cycle back on down', () => {
           let anchor = new Widget();
-          let model = new CompletionModel();
-          let options: CompletionWidget.IOptions = {
+          let model = new CompleterModel();
+          let options: CompleterWidget.IOptions = {
             model, anchor: anchor.node
           };
           model.options = ['foo', 'bar', 'baz'];
           Widget.attach(anchor, document.body);
 
-          let widget = new CompletionWidget(options);
+          let widget = new CompleterWidget(options);
           let target = document.createElement('div');
 
           anchor.node.appendChild(target);
@@ -366,14 +366,14 @@ describe('notebook/completion/widget', () => {
 
         it('should select the item above and cycle back on up', () => {
           let anchor = new Widget();
-          let model = new CompletionModel();
-          let options: CompletionWidget.IOptions = {
+          let model = new CompleterModel();
+          let options: CompleterWidget.IOptions = {
             model, anchor: anchor.node
           };
           model.options = ['foo', 'bar', 'baz'];
           Widget.attach(anchor, document.body);
 
-          let widget = new CompletionWidget(options);
+          let widget = new CompleterWidget(options);
 
           Widget.attach(widget, document.body);
           sendMessage(widget, WidgetMessage.UpdateRequest);
@@ -401,8 +401,8 @@ describe('notebook/completion/widget', () => {
 
         it('should mark common subset on tab and select on next tab', () => {
           let anchor = new Widget();
-          let model = new CompletionModel();
-          let options: CompletionWidget.IOptions = {
+          let model = new CompleterModel();
+          let options: CompleterWidget.IOptions = {
             model, anchor: anchor.node
           };
           let value = '';
@@ -412,7 +412,7 @@ describe('notebook/completion/widget', () => {
           model.options = ['foo', 'four', 'foz'];
           Widget.attach(anchor, document.body);
 
-          let widget = new CompletionWidget(options);
+          let widget = new CompleterWidget(options);
 
           widget.selected.connect(listener);
           Widget.attach(widget, document.body);
@@ -441,8 +441,8 @@ describe('notebook/completion/widget', () => {
 
         it('should trigger a selected signal on mouse down', () => {
           let anchor = new Widget();
-          let model = new CompletionModel();
-          let options: CompletionWidget.IOptions = {
+          let model = new CompleterModel();
+          let options: CompleterWidget.IOptions = {
             model, anchor: anchor.node
           };
           let value = '';
@@ -453,7 +453,7 @@ describe('notebook/completion/widget', () => {
           model.query = 'b';
           Widget.attach(anchor, document.body);
 
-          let widget = new CompletionWidget(options);
+          let widget = new CompleterWidget(options);
 
           widget.selected.connect(listener);
           Widget.attach(widget, document.body);
@@ -470,8 +470,8 @@ describe('notebook/completion/widget', () => {
 
         it('should ignore nonstandard mouse clicks (e.g., right click)', () => {
           let anchor = new Widget();
-          let model = new CompletionModel();
-          let options: CompletionWidget.IOptions = {
+          let model = new CompleterModel();
+          let options: CompleterWidget.IOptions = {
             model, anchor: anchor.node
           };
           let value = '';
@@ -481,7 +481,7 @@ describe('notebook/completion/widget', () => {
           model.options = ['foo', 'bar'];
           Widget.attach(anchor, document.body);
 
-          let widget = new CompletionWidget(options);
+          let widget = new CompleterWidget(options);
 
           widget.selected.connect(listener);
           Widget.attach(widget, document.body);
@@ -495,8 +495,8 @@ describe('notebook/completion/widget', () => {
 
         it('should ignore a mouse down that misses an item', () => {
           let anchor = new Widget();
-          let model = new CompletionModel();
-          let options: CompletionWidget.IOptions = {
+          let model = new CompleterModel();
+          let options: CompleterWidget.IOptions = {
             model, anchor: anchor.node
           };
           let value = '';
@@ -506,7 +506,7 @@ describe('notebook/completion/widget', () => {
           model.options = ['foo', 'bar'];
           Widget.attach(anchor, document.body);
 
-          let widget = new CompletionWidget(options);
+          let widget = new CompleterWidget(options);
 
           widget.selected.connect(listener);
           Widget.attach(widget, document.body);
@@ -520,8 +520,8 @@ describe('notebook/completion/widget', () => {
 
         it('should hide widget if mouse down misses it', () => {
           let anchor = new Widget();
-          let model = new CompletionModel();
-          let options: CompletionWidget.IOptions = {
+          let model = new CompleterModel();
+          let options: CompleterWidget.IOptions = {
             model, anchor: anchor.node
           };
           let value = '';
@@ -531,7 +531,7 @@ describe('notebook/completion/widget', () => {
           model.options = ['foo', 'bar'];
           Widget.attach(anchor, document.body);
 
-          let widget = new CompletionWidget(options);
+          let widget = new CompleterWidget(options);
 
           widget.selected.connect(listener);
           Widget.attach(widget, document.body);
@@ -551,7 +551,7 @@ describe('notebook/completion/widget', () => {
         it('should move along with the pegged anchor', (done) => {
           let anchor = document.createElement('div');
           let container = new Widget();
-          let model = new CompletionModel();
+          let model = new CompleterModel();
           let coords: ICoords = { left: 0, right: 0, top: 500, bottom: 0 };
           let request: ICompletionRequest = {
             ch: 0,
@@ -562,7 +562,7 @@ describe('notebook/completion/widget', () => {
             position: 0,
             currentValue: 'f'
           };
-          let options: CompletionWidget.IOptions = { model, anchor: anchor };
+          let options: CompleterWidget.IOptions = { model, anchor: anchor };
 
           document.body.appendChild(anchor);
           anchor.style.height = '1000px';
@@ -574,7 +574,7 @@ describe('notebook/completion/widget', () => {
           model.original = request;
           model.options = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
 
-          let widget = new CompletionWidget(options);
+          let widget = new CompleterWidget(options);
           Widget.attach(widget, document.body);
           sendMessage(widget, WidgetMessage.UpdateRequest);
 
@@ -601,7 +601,7 @@ describe('notebook/completion/widget', () => {
 
       it('should emit a selection if there is only one match', () => {
         let anchor = new Widget();
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let request: ICompletionRequest = {
           ch: 0,
           chHeight: 0,
@@ -612,14 +612,14 @@ describe('notebook/completion/widget', () => {
           currentValue: 'f'
         };
         let value = '';
-        let options: CompletionWidget.IOptions = { model, anchor: anchor.node };
+        let options: CompleterWidget.IOptions = { model, anchor: anchor.node };
         let listener = (sender: any, selected: string) => { value = selected; };
 
         Widget.attach(anchor, document.body);
         model.original = request;
         model.options = ['foo'];
 
-        let widget = new CompletionWidget(options);
+        let widget = new CompleterWidget(options);
         widget.selected.connect(listener);
         Widget.attach(widget, document.body);
 
@@ -638,7 +638,7 @@ describe('notebook/completion/widget', () => {
 
       it('should un-hide widget if multiple options are available', () => {
         let anchor = new Widget();
-        let model = new CompletionModel();
+        let model = new CompleterModel();
         let request: ICompletionRequest = {
           ch: 0,
           chHeight: 0,
@@ -648,13 +648,13 @@ describe('notebook/completion/widget', () => {
           position: 0,
           currentValue: 'f'
         };
-        let options: CompletionWidget.IOptions = { model, anchor: anchor.node };
+        let options: CompleterWidget.IOptions = { model, anchor: anchor.node };
 
         Widget.attach(anchor, document.body);
         model.original = request;
         model.options = ['foo', 'bar', 'baz'];
 
-        let widget = new CompletionWidget(options);
+        let widget = new CompleterWidget(options);
         widget.hide();
         expect(widget.isHidden).to.be(true);
         Widget.attach(widget, document.body);

+ 4 - 4
test/src/index.ts

@@ -4,6 +4,10 @@
 import './common/activitymonitor.spec';
 import './common/observablelist.spec';
 
+import './completer/handler.spec';
+import './completer/model.spec';
+import './completer/widget.spec';
+
 import './console/history.spec';
 
 import './dialog/dialog.spec';
@@ -24,10 +28,6 @@ import './notebook/cells/editor.spec';
 import './notebook/cells/model.spec';
 import './notebook/cells/widget.spec';
 
-import './notebook/completion/handler.spec';
-import './notebook/completion/model.spec';
-import './notebook/completion/widget.spec';
-
 import './notebook/notebook/actions.spec';
 import './notebook/notebook/default-toolbar.spec';
 import './notebook/notebook/model.spec';

+ 5 - 5
test/src/notebook/notebook/panel.spec.ts

@@ -20,8 +20,8 @@ import {
 } from '../../../../lib/docregistry';
 
 import {
-  CompletionWidget
-} from '../../../../lib/notebook/completion';
+  CompleterWidget
+} from '../../../../lib/completer';
 
 import {
   INotebookModel, NotebookModel
@@ -413,11 +413,11 @@ describe('notebook/notebook/panel', () => {
 
       });
 
-      describe('#createCompletion()', () => {
+      describe('#createCompleter()', () => {
 
-        it('should create a completion widget', () => {
+        it('should create a completer widget', () => {
           let renderer = new CodeMirrorNotebookPanelRenderer();
-          expect(renderer.createCompletion()).to.be.a(CompletionWidget);
+          expect(renderer.createCompleter()).to.be.a(CompleterWidget);
         });
 
       });