Skip to content

Commit 7f17834

Browse files
author
aiday-mar
committed
Always dispose test editor even if a test fails
1 parent 675806f commit 7f17834

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/vs/editor/test/browser/testCodeEditor.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ function isTextModel(arg: ITextModel | string | string[] | ITextBufferFactory):
133133

134134
function _withTestCodeEditor(arg: ITextModel | string | string[] | ITextBufferFactory, options: TestCodeEditorInstantiationOptions, callback: (editor: ITestCodeEditor, viewModel: ViewModel, instantiationService: TestInstantiationService) => void): void;
135135
function _withTestCodeEditor(arg: ITextModel | string | string[] | ITextBufferFactory, options: TestCodeEditorInstantiationOptions, callback: (editor: ITestCodeEditor, viewModel: ViewModel, instantiationService: TestInstantiationService) => Promise<void>): Promise<void>;
136-
function _withTestCodeEditor(arg: ITextModel | string | string[] | ITextBufferFactory, options: TestCodeEditorInstantiationOptions, callback: (editor: ITestCodeEditor, viewModel: ViewModel, instantiationService: TestInstantiationService) => Promise<void> | void): Promise<void> | void {
136+
async function _withTestCodeEditor(arg: ITextModel | string | string[] | ITextBufferFactory, options: TestCodeEditorInstantiationOptions, callback: (editor: ITestCodeEditor, viewModel: ViewModel, instantiationService: TestInstantiationService) => Promise<void> | void): Promise<Promise<void> | void> {
137137
const disposables = new DisposableStore();
138138
const instantiationService = createCodeEditorServices(disposables, options.serviceCollection);
139139
delete options.serviceCollection;
@@ -149,12 +149,12 @@ function _withTestCodeEditor(arg: ITextModel | string | string[] | ITextBufferFa
149149
const editor = disposables.add(instantiateTestCodeEditor(instantiationService, model, options));
150150
const viewModel = editor.getViewModel()!;
151151
viewModel.setHasFocus(true);
152-
const result = callback(<ITestCodeEditor>editor, editor.getViewModel()!, instantiationService);
153-
if (result) {
154-
return result.then(() => disposables.dispose());
152+
try {
153+
const result = callback(<ITestCodeEditor>editor, editor.getViewModel()!, instantiationService);
154+
await result;
155+
} finally {
156+
disposables.dispose();
155157
}
156-
157-
disposables.dispose();
158158
}
159159

160160
export function createCodeEditorServices(disposables: DisposableStore, services: ServiceCollection = new ServiceCollection()): TestInstantiationService {

0 commit comments

Comments
 (0)