From 3711d0fc6738f69d0cbccff17c1e47a6ca76b23c Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Wed, 6 Feb 2019 17:12:22 -0800 Subject: [PATCH] Strict null work on workbenchTestServices Throw not implemented instead of returning null results for most methods --- .../textfile/common/textFileService.ts | 2 +- .../textfile/test/textFileService.test.ts | 4 +- .../workbench/test/workbenchTestServices.ts | 86 ++++++++++--------- 3 files changed, 50 insertions(+), 42 deletions(-) diff --git a/src/vs/workbench/services/textfile/common/textFileService.ts b/src/vs/workbench/services/textfile/common/textFileService.ts index 8babc6bcb54..1b8e23675a7 100644 --- a/src/vs/workbench/services/textfile/common/textFileService.ts +++ b/src/vs/workbench/services/textfile/common/textFileService.ts @@ -57,7 +57,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer private _models: TextFileEditorModelManager; private currentFilesAssociationConfig: { [key: string]: string; }; - private configuredAutoSaveDelay: number; + private configuredAutoSaveDelay?: number; private configuredAutoSaveOnFocusChange: boolean; private configuredAutoSaveOnWindowChange: boolean; private configuredHotExit: string; diff --git a/src/vs/workbench/services/textfile/test/textFileService.test.ts b/src/vs/workbench/services/textfile/test/textFileService.test.ts index 7c75c57e3ea..3eb2f5092bb 100644 --- a/src/vs/workbench/services/textfile/test/textFileService.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileService.test.ts @@ -58,7 +58,9 @@ suite('Files - TextFileService', () => { }); teardown(() => { - model.dispose(); + if (model) { + model.dispose(); + } (accessor.textFileService.models).clear(); (accessor.textFileService.models).dispose(); accessor.untitledEditorService.revertAll(); diff --git a/src/vs/workbench/test/workbenchTestServices.ts b/src/vs/workbench/test/workbenchTestServices.ts index 2ab4c1cd7a7..283fcce77f2 100644 --- a/src/vs/workbench/test/workbenchTestServices.ts +++ b/src/vs/workbench/test/workbenchTestServices.ts @@ -488,7 +488,7 @@ export class TestPartService implements IPartService { } public getMenubarVisibility(): MenuBarVisibility { - return null; + throw new Error('not implemented'); } public getSideBarPosition() { @@ -505,7 +505,7 @@ export class TestPartService implements IPartService { public addClass(_clazz: string): void { } public removeClass(_clazz: string): void { } - public getWorkbenchElement(): HTMLElement { return undefined; } + public getWorkbenchElement(): HTMLElement { throw new Error('not implemented'); } public toggleZenMode(): void { } @@ -550,7 +550,7 @@ export class TestEditorGroupsService implements EditorGroupsServiceImpl { } } - return undefined; + return undefined!; } getLabel(_identifier: number): string { @@ -558,11 +558,11 @@ export class TestEditorGroupsService implements EditorGroupsServiceImpl { } findGroup(_scope: IFindGroupScope, _source?: number | IEditorGroup, _wrap?: boolean): IEditorGroup { - return null; + throw new Error('not implemented'); } activateGroup(_group: number | IEditorGroup): IEditorGroup { - return null; + throw new Error('not implemented'); } getSize(_group: number | IEditorGroup): number { @@ -578,21 +578,21 @@ export class TestEditorGroupsService implements EditorGroupsServiceImpl { setGroupOrientation(_orientation: any): void { } addGroup(_location: number | IEditorGroup, _direction: GroupDirection, _options?: IAddGroupOptions): IEditorGroup { - return null; + throw new Error('not implemented'); } removeGroup(_group: number | IEditorGroup): void { } moveGroup(_group: number | IEditorGroup, _location: number | IEditorGroup, _direction: GroupDirection): IEditorGroup { - return null; + throw new Error('not implemented'); } mergeGroup(_group: number | IEditorGroup, _target: number | IEditorGroup, _options?: IMergeGroupOptions): IEditorGroup { - return null; + throw new Error('not implemented'); } copyGroup(_group: number | IEditorGroup, _location: number | IEditorGroup, _direction: GroupDirection): IEditorGroup { - return null; + throw new Error('not implemented'); } } @@ -600,7 +600,7 @@ export class TestEditorGroup implements IEditorGroupView { constructor(public id: number) { } - group: EditorGroup = undefined; + get group(): EditorGroup { throw new Error('not implemented'); } activeControl: IEditor; activeEditor: IEditorInput; previewEditor: IEditorInput; @@ -629,7 +629,7 @@ export class TestEditorGroup implements IEditorGroupView { } getEditor(_index: number): IEditorInput { - return null; + throw new Error('not implemented'); } getIndexOfEditor(_editor: IEditorInput): number { @@ -637,11 +637,11 @@ export class TestEditorGroup implements IEditorGroupView { } openEditor(_editor: IEditorInput, _options?: IEditorOptions): Promise { - return Promise.resolve(null); + throw new Error('not implemented'); } openEditors(_editors: IEditorInputWithOptions[]): Promise { - return Promise.resolve(null); + throw new Error('not implemented'); } isOpened(_editor: IEditorInput): boolean { @@ -681,7 +681,7 @@ export class TestEditorGroup implements IEditorGroupView { focus(): void { } invokeWithinContext(fn: (accessor: ServicesAccessor) => T): T { - return fn(null); + throw new Error('not implemented'); } isEmpty(): boolean { return true; } @@ -714,12 +714,12 @@ export class TestEditorService implements EditorServiceImpl { return toDisposable(() => undefined); } - openEditor(_editor: any, _options?: any, _group?: any) { - return Promise.resolve(null); + openEditor(_editor: any, _options?: any, _group?: any): Promise { + throw new Error('not implemented'); } - openEditors(_editors: any, _group?: any) { - return Promise.resolve(null); + openEditors(_editors: any, _group?: any): Promise { + throw new Error('not implemented'); } isOpen(_editor: IEditorInput | IResourceInput | IUntitledResourceInput): boolean { @@ -727,7 +727,7 @@ export class TestEditorService implements EditorServiceImpl { } getOpened(_editor: IEditorInput | IResourceInput | IUntitledResourceInput): IEditorInput { - return undefined; + throw new Error('not implemented'); } replaceEditors(_editors: any, _group: any) { @@ -735,11 +735,11 @@ export class TestEditorService implements EditorServiceImpl { } invokeWithinEditorContext(fn: (accessor: ServicesAccessor) => T): T { - return fn(null); + throw new Error('not implemented'); } createInput(_input: IResourceInput | IUntitledResourceInput | IResourceDiffInput | IResourceSideBySideInput): IEditorInput { - return null; + throw new Error('not implemented'); } } @@ -799,7 +799,7 @@ export class TestFileService implements IFileService { } existsFile(_resource: URI): Promise { - return Promise.resolve(null); + throw new Error('not implemented'); } resolveContent(resource: URI, _options?: IResolveContentOptions): Promise { @@ -845,15 +845,15 @@ export class TestFileService implements IFileService { } moveFile(_source: URI, _target: URI, _overwrite?: boolean): Promise { - return Promise.resolve(null); + return Promise.resolve(null!); } copyFile(_source: URI, _target: URI, _overwrite?: boolean): Promise { - return Promise.resolve(null); + throw new Error('not implemented'); } createFile(_resource: URI, _content?: string, _options?: ICreateFileOptions): Promise { - return Promise.resolve(null); + throw new Error('not implemented'); } readFolder(_resource: URI) { @@ -861,7 +861,7 @@ export class TestFileService implements IFileService { } createFolder(_resource: URI): Promise { - return Promise.resolve(null); + throw new Error('not implemented'); } onDidChangeFileSystemProviderRegistrations = Event.None; @@ -870,8 +870,8 @@ export class TestFileService implements IFileService { return { dispose() { } }; } - activateProvider(_scheme: string) { - return Promise.resolve(null); + activateProvider(_scheme: string): Promise { + throw new Error('not implemented'); } canHandleResource(resource: URI): boolean { @@ -879,7 +879,7 @@ export class TestFileService implements IFileService { } del(_resource: URI, _options?: { useTrash?: boolean, recursive?: boolean }): Promise { - return Promise.resolve(null); + return Promise.resolve(); } watchFileChanges(_resource: URI): void { @@ -907,7 +907,7 @@ export class TestBackupFileService implements IBackupFileService { return Promise.resolve(false); } - public loadBackupResource(resource: URI): Promise { + public loadBackupResource(resource: URI): Promise { return this.hasBackup(resource).then(hasBackup => { if (hasBackup) { return this.toBackupResource(resource); @@ -926,7 +926,7 @@ export class TestBackupFileService implements IBackupFileService { } public toBackupResource(_resource: URI): URI { - return null; + throw new Error('not implemented'); } public backupResource(_resource: URI, _content: ITextSnapshot): Promise { @@ -945,7 +945,7 @@ export class TestBackupFileService implements IBackupFileService { } public resolveBackupContent(_backup: URI): Promise { - return Promise.resolve(null); + throw new Error('not implemented'); } public discardResourceBackup(_resource: URI): Promise { @@ -1052,7 +1052,10 @@ export class TestWindowService implements IWindowService { } getRecentlyOpened(): Promise { - return Promise.resolve(undefined); + return Promise.resolve({ + workspaces: [], + files: [] + }); } focusWindow(): Promise { @@ -1096,11 +1099,11 @@ export class TestWindowService implements IWindowService { } showSaveDialog(_options: Electron.SaveDialogOptions): Promise { - return Promise.resolve(undefined); + throw new Error('not implemented'); } showOpenDialog(_options: Electron.OpenDialogOptions): Promise { - return Promise.resolve(undefined); + throw new Error('not implemented'); } updateTouchBar(_items: ISerializableCommandAction[][]): Promise { @@ -1225,7 +1228,10 @@ export class TestWindowsService implements IWindowsService { } getRecentlyOpened(_windowId: number): Promise { - return Promise.resolve(undefined); + return Promise.resolve({ + workspaces: [], + files: [] + }); } focusWindow(_windowId: number): Promise { @@ -1290,7 +1296,7 @@ export class TestWindowsService implements IWindowsService { } getWindows(): Promise<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]> { - return Promise.resolve(undefined); + throw new Error('not implemented'); } getWindowCount(): Promise { @@ -1349,15 +1355,15 @@ export class TestWindowsService implements IWindowsService { } showMessageBox(_windowId: number, _options: Electron.MessageBoxOptions): Promise { - return Promise.resolve(undefined); + throw new Error('not implemented'); } showSaveDialog(_windowId: number, _options: Electron.SaveDialogOptions): Promise { - return Promise.resolve(undefined); + throw new Error('not implemented'); } showOpenDialog(_windowId: number, _options: Electron.OpenDialogOptions): Promise { - return Promise.resolve(undefined); + throw new Error('not implemented'); } openAboutDialog(): Promise { -- GitLab