diff --git a/.eslintrc.json b/.eslintrc.json index e9670fc9c83..4bb1fc53e36 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -154,10 +154,6 @@ "src/vs/editor/contrib/codeAction/test/browser/codeActionKeybindingResolver.test.ts", "src/vs/editor/contrib/codeAction/test/browser/codeActionModel.test.ts", "src/vs/editor/contrib/gotoSymbol/test/browser/referencesModel.test.ts", - "src/vs/editor/contrib/smartSelect/test/browser/smartSelect.test.ts", - "src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts", - "src/vs/editor/contrib/suggest/test/browser/completionModel.test.ts", - "src/vs/editor/contrib/suggest/test/browser/suggestMemory.test.ts", "src/vs/editor/test/common/services/languageService.test.ts", "src/vs/editor/test/node/classification/typescript.test.ts", "src/vs/editor/test/node/diffing/defaultLinesDiffComputer.test.ts", @@ -167,22 +163,15 @@ "src/vs/platform/contextkey/test/common/parser.test.ts", "src/vs/platform/contextkey/test/common/scanner.test.ts", "src/vs/platform/extensions/test/common/extensionValidator.test.ts", - "src/vs/platform/instantiation/test/common/graph.test.ts", "src/vs/platform/keybinding/test/common/abstractKeybindingService.test.ts", "src/vs/platform/keybinding/test/common/keybindingLabels.test.ts", "src/vs/platform/keybinding/test/common/keybindingResolver.test.ts", - "src/vs/platform/markers/test/common/markerService.test.ts", "src/vs/platform/opener/test/common/opener.test.ts", - "src/vs/platform/progress/test/common/progress.test.ts", "src/vs/platform/registry/test/common/platform.test.ts", "src/vs/platform/remote/test/common/remoteHosts.test.ts", "src/vs/platform/telemetry/test/browser/1dsAppender.test.ts", "src/vs/platform/workspace/test/common/workspace.test.ts", "src/vs/platform/workspaces/test/electron-main/workspaces.test.ts", - "src/vs/workbench/api/test/browser/extHostApiCommands.test.ts", - "src/vs/workbench/api/test/browser/extHostBulkEdits.test.ts", - "src/vs/workbench/api/test/browser/extHostDocumentSaveParticipant.test.ts", - "src/vs/workbench/api/test/browser/extHostTypeConverter.test.ts", "src/vs/workbench/api/test/browser/extHostWorkspace.test.ts", "src/vs/workbench/api/test/browser/mainThreadConfiguration.test.ts", "src/vs/workbench/api/test/browser/mainThreadDocuments.test.ts", @@ -194,9 +183,6 @@ "src/vs/workbench/contrib/extensions/test/common/extensionQuery.test.ts", "src/vs/workbench/contrib/notebook/test/browser/notebookExecutionService.test.ts", "src/vs/workbench/contrib/notebook/test/browser/notebookExecutionStateService.test.ts", - "src/vs/workbench/contrib/snippets/test/browser/snippetFile.test.ts", - "src/vs/workbench/contrib/snippets/test/browser/snippetsRegistry.test.ts", - "src/vs/workbench/contrib/snippets/test/browser/snippetsRewrite.test.ts", "src/vs/workbench/contrib/tasks/test/common/problemMatcher.test.ts", "src/vs/workbench/contrib/tasks/test/common/taskConfiguration.test.ts", "src/vs/workbench/services/commands/test/common/commandService.test.ts", diff --git a/src/vs/editor/contrib/smartSelect/test/browser/smartSelect.test.ts b/src/vs/editor/contrib/smartSelect/test/browser/smartSelect.test.ts index dadceb8254a..fb1307529f6 100644 --- a/src/vs/editor/contrib/smartSelect/test/browser/smartSelect.test.ts +++ b/src/vs/editor/contrib/smartSelect/test/browser/smartSelect.test.ts @@ -19,6 +19,7 @@ import { createModelServices } from 'vs/editor/test/common/testTextModel'; import { javascriptOnEnterRules } from 'vs/editor/test/common/modes/supports/javascriptOnEnterRules'; import { LanguageFeatureRegistry } from 'vs/editor/common/languageFeatureRegistry'; import { ILanguageSelection, ILanguageService } from 'vs/editor/common/languages/language'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; class StaticLanguageSelector implements ILanguageSelection { readonly onDidChange: Event = Event.None; @@ -64,6 +65,8 @@ suite('SmartSelect', () => { disposables.dispose(); }); + ensureNoDisposablesAreLeakedInTestSuite(); + async function assertGetRangesToPosition(text: string[], lineNumber: number, column: number, ranges: Range[], selectLeadingAndTrailingWhitespace = true): Promise { const uri = URI.file('test.js'); const model = modelService.createModel(text.join('\n'), new StaticLanguageSelector(languageId), uri); diff --git a/src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts b/src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts index a9563c30f13..61061846724 100644 --- a/src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts +++ b/src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; import { mock } from 'vs/base/test/common/mock'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { IActiveCodeEditor } from 'vs/editor/browser/editorBrowser'; import { IPosition, Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; @@ -58,6 +59,8 @@ suite('SnippetSession', function () { editor.dispose(); }); + ensureNoDisposablesAreLeakedInTestSuite(); + test('normalize whitespace', function () { function assertNormalized(position: IPosition, input: string, expected: string): void { diff --git a/src/vs/editor/contrib/suggest/test/browser/completionModel.test.ts b/src/vs/editor/contrib/suggest/test/browser/completionModel.test.ts index 2cc955597b4..cb08e56fb7f 100644 --- a/src/vs/editor/contrib/suggest/test/browser/completionModel.test.ts +++ b/src/vs/editor/contrib/suggest/test/browser/completionModel.test.ts @@ -3,6 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { EditorOptions, InternalSuggestOptions } from 'vs/editor/common/config/editorOptions'; import { IPosition } from 'vs/editor/common/core/position'; import * as languages from 'vs/editor/common/languages'; @@ -83,6 +84,8 @@ suite('CompletionModel', function () { }, WordDistance.None, EditorOptions.suggest.defaultValue, EditorOptions.snippetSuggestions.defaultValue, undefined); }); + ensureNoDisposablesAreLeakedInTestSuite(); + test('filtering - cached', function () { const itemsNow = model.items; diff --git a/src/vs/editor/contrib/suggest/test/browser/suggestMemory.test.ts b/src/vs/editor/contrib/suggest/test/browser/suggestMemory.test.ts index e0c1496c0d0..3bbc8c58838 100644 --- a/src/vs/editor/contrib/suggest/test/browser/suggestMemory.test.ts +++ b/src/vs/editor/contrib/suggest/test/browser/suggestMemory.test.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { IPosition } from 'vs/editor/common/core/position'; import { ITextModel } from 'vs/editor/common/model'; import { CompletionItem } from 'vs/editor/contrib/suggest/browser/suggest'; @@ -30,6 +31,8 @@ suite('SuggestMemories', function () { buffer.dispose(); }); + ensureNoDisposablesAreLeakedInTestSuite(); + test('AbstractMemory, select', function () { const mem = new class extends Memory { diff --git a/src/vs/platform/instantiation/test/common/graph.test.ts b/src/vs/platform/instantiation/test/common/graph.test.ts index 29ef9de95b3..c5abc22ccff 100644 --- a/src/vs/platform/instantiation/test/common/graph.test.ts +++ b/src/vs/platform/instantiation/test/common/graph.test.ts @@ -3,15 +3,19 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { Graph } from 'vs/platform/instantiation/common/graph'; suite('Graph', () => { + let graph: Graph; setup(() => { graph = new Graph(s => s); }); + ensureNoDisposablesAreLeakedInTestSuite(); + test('is possible to lookup nodes that don\'t exist', function () { assert.strictEqual(graph.lookup('ddd'), undefined); }); diff --git a/src/vs/platform/markers/test/common/markerService.test.ts b/src/vs/platform/markers/test/common/markerService.test.ts index 73ab130a90a..d8ebccf746f 100644 --- a/src/vs/platform/markers/test/common/markerService.test.ts +++ b/src/vs/platform/markers/test/common/markerService.test.ts @@ -5,6 +5,7 @@ import * as assert from 'assert'; import { URI } from 'vs/base/common/uri'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { IMarkerData, MarkerSeverity } from 'vs/platform/markers/common/markers'; import * as markerService from 'vs/platform/markers/common/markerService'; @@ -21,9 +22,17 @@ function randomMarkerData(severity = MarkerSeverity.Error): IMarkerData { suite('Marker Service', () => { + let service: markerService.MarkerService; + + teardown(function () { + service.dispose(); + }); + + ensureNoDisposablesAreLeakedInTestSuite(); + test('query', () => { - const service = new markerService.MarkerService(); + service = new markerService.MarkerService(); service.changeAll('far', [{ resource: URI.parse('file:///c/test/file.cs'), @@ -55,7 +64,7 @@ suite('Marker Service', () => { test('changeOne override', () => { - const service = new markerService.MarkerService(); + service = new markerService.MarkerService(); service.changeOne('far', URI.parse('file:///path/only.cs'), [randomMarkerData()]); assert.strictEqual(service.read().length, 1); assert.strictEqual(service.read({ owner: 'far' }).length, 1); @@ -73,7 +82,7 @@ suite('Marker Service', () => { test('changeOne/All clears', () => { - const service = new markerService.MarkerService(); + service = new markerService.MarkerService(); service.changeOne('far', URI.parse('file:///path/only.cs'), [randomMarkerData()]); service.changeOne('boo', URI.parse('file:///path/only.cs'), [randomMarkerData()]); assert.strictEqual(service.read({ owner: 'far' }).length, 1); @@ -93,7 +102,7 @@ suite('Marker Service', () => { test('changeAll sends event for cleared', () => { - const service = new markerService.MarkerService(); + service = new markerService.MarkerService(); service.changeAll('far', [{ resource: URI.parse('file:///d/path'), marker: randomMarkerData() @@ -104,17 +113,19 @@ suite('Marker Service', () => { assert.strictEqual(service.read({ owner: 'far' }).length, 2); - service.onMarkerChanged(changedResources => { + const d = service.onMarkerChanged(changedResources => { assert.strictEqual(changedResources.length, 1); changedResources.forEach(u => assert.strictEqual(u.toString(), 'file:///d/path')); assert.strictEqual(service.read({ owner: 'far' }).length, 0); }); service.changeAll('far', []); + + d.dispose(); }); test('changeAll merges', () => { - const service = new markerService.MarkerService(); + service = new markerService.MarkerService(); service.changeAll('far', [{ resource: URI.parse('file:///c/test/file.cs'), @@ -128,7 +139,7 @@ suite('Marker Service', () => { }); test('changeAll must not break integrety, issue #12635', () => { - const service = new markerService.MarkerService(); + service = new markerService.MarkerService(); service.changeAll('far', [{ resource: URI.parse('scheme:path1'), @@ -158,7 +169,7 @@ suite('Marker Service', () => { test('invalid marker data', () => { const data = randomMarkerData(); - const service = new markerService.MarkerService(); + service = new markerService.MarkerService(); data.message = undefined!; service.changeOne('far', URI.parse('some:uri/path'), [data]); @@ -174,7 +185,7 @@ suite('Marker Service', () => { }); test('MapMap#remove returns bad values, https://github.com/microsoft/vscode/issues/13548', () => { - const service = new markerService.MarkerService(); + service = new markerService.MarkerService(); service.changeOne('o', URI.parse('some:uri/1'), [randomMarkerData()]); service.changeOne('o', URI.parse('some:uri/2'), []); @@ -192,7 +203,7 @@ suite('Marker Service', () => { severity: 0 as MarkerSeverity, source: 'me' }; - const service = new markerService.MarkerService(); + service = new markerService.MarkerService(); service.changeOne('far', URI.parse('some:thing'), [data]); const marker = service.read({ resource: URI.parse('some:thing') }); diff --git a/src/vs/platform/progress/test/common/progress.test.ts b/src/vs/platform/progress/test/common/progress.test.ts index 638f7d59524..85bce306781 100644 --- a/src/vs/platform/progress/test/common/progress.test.ts +++ b/src/vs/platform/progress/test/common/progress.test.ts @@ -5,9 +5,13 @@ import * as assert from 'assert'; import { runWithFakedTimers } from 'vs/base/test/common/timeTravelScheduler'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { AsyncProgress } from 'vs/platform/progress/common/progress'; suite('Progress', () => { + + ensureNoDisposablesAreLeakedInTestSuite(); + test('multiple report calls are processed in sequence', async () => { await runWithFakedTimers({ useFakeTimers: true, maxTaskCount: 100 }, async () => { const executionOrder: string[] = []; diff --git a/src/vs/workbench/api/test/browser/extHostApiCommands.test.ts b/src/vs/workbench/api/test/browser/extHostApiCommands.test.ts index 3a60e4c025b..2e4e2560bfc 100644 --- a/src/vs/workbench/api/test/browser/extHostApiCommands.test.ts +++ b/src/vs/workbench/api/test/browser/extHostApiCommands.test.ts @@ -34,7 +34,6 @@ import { mock } from 'vs/base/test/common/mock'; import { NullApiDeprecationService } from 'vs/workbench/api/common/extHostApiDeprecationService'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; -import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService'; import { IResolvedTextEditorModel, ITextModelService } from 'vs/editor/common/services/resolverService'; import { IExtHostFileSystemInfo } from 'vs/workbench/api/common/extHostFileSystemInfo'; import { URITransformerService } from 'vs/workbench/api/common/extHostUriTransformerService'; @@ -62,7 +61,7 @@ import { IExtHostTelemetry } from 'vs/workbench/api/common/extHostTelemetry'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; -import { ensureFileSystemProviderError } from 'vs/platform/files/common/files'; +import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; function assertRejects(fn: () => Promise, message: string = 'Expected rejection') { return fn().then(() => assert.ok(false, message), _err => assert.ok(true)); @@ -77,6 +76,7 @@ suite('ExtHostLanguageFeatureCommands', function () { const defaultSelector = { scheme: 'far' }; let model: ITextModel; + let insta: TestInstantiationService; let rpcProtocol: TestRPCProtocol; let extHost: ExtHostLanguageFeatures; let mainThread: MainThreadLanguageFeatures; @@ -153,7 +153,7 @@ suite('ExtHostLanguageFeatureCommands', function () { services.set(IOutlineModelService, new SyncDescriptor(OutlineModelService)); services.set(IConfigurationService, new TestConfigurationService()); - const insta = new InstantiationService(services); + insta = new TestInstantiationService(services); const extHostDocumentsAndEditors = new ExtHostDocumentsAndEditors(rpcProtocol, new NullLogService()); extHostDocumentsAndEditors.$acceptDocumentsAndEditorsDelta({ @@ -197,6 +197,9 @@ suite('ExtHostLanguageFeatureCommands', function () { setUnexpectedErrorHandler(originalErrorHandler); model.dispose(); mainThread.dispose(); + + (insta.get(IOutlineModelService)).dispose(); + insta.dispose(); }); teardown(() => { @@ -204,7 +207,7 @@ suite('ExtHostLanguageFeatureCommands', function () { return rpcProtocol.sync(); }); - ensureFileSystemProviderError(); + // ensureNoDisposablesAreLeakedInTestSuite(); // --- workspace symbols diff --git a/src/vs/workbench/api/test/browser/extHostBulkEdits.test.ts b/src/vs/workbench/api/test/browser/extHostBulkEdits.test.ts index f1f18d641e8..f17a6c5b0e9 100644 --- a/src/vs/workbench/api/test/browser/extHostBulkEdits.test.ts +++ b/src/vs/workbench/api/test/browser/extHostBulkEdits.test.ts @@ -12,6 +12,7 @@ import { SingleProxyRPCProtocol, TestRPCProtocol } from 'vs/workbench/api/test/c import { NullLogService } from 'vs/platform/log/common/log'; import { ExtHostBulkEdits } from 'vs/workbench/api/common/extHostBulkEdits'; import { nullExtensionDescription } from 'vs/workbench/services/extensions/common/extensions'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('ExtHostBulkEdits.applyWorkspaceEdit', () => { @@ -43,6 +44,8 @@ suite('ExtHostBulkEdits.applyWorkspaceEdit', () => { bulkEdits = new ExtHostBulkEdits(rpcProtocol, documentsAndEditors); }); + ensureNoDisposablesAreLeakedInTestSuite(); + test('uses version id if document available', async () => { const edit = new extHostTypes.WorkspaceEdit(); edit.replace(resource, new extHostTypes.Range(0, 0, 0, 0), 'hello'); diff --git a/src/vs/workbench/api/test/browser/extHostDocumentSaveParticipant.test.ts b/src/vs/workbench/api/test/browser/extHostDocumentSaveParticipant.test.ts index c50aabb812f..59c02e4d3b1 100644 --- a/src/vs/workbench/api/test/browser/extHostDocumentSaveParticipant.test.ts +++ b/src/vs/workbench/api/test/browser/extHostDocumentSaveParticipant.test.ts @@ -14,8 +14,12 @@ import { SaveReason } from 'vs/workbench/common/editor'; import type * as vscode from 'vscode'; import { mock } from 'vs/base/test/common/mock'; import { NullLogService } from 'vs/platform/log/common/log'; -import { timeout } from 'vs/base/common/async'; import { nullExtensionDescription } from 'vs/workbench/services/extensions/common/extensions'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; + +function timeout(n: number) { + return new Promise(resolve => setTimeout(resolve, n)); +} suite('ExtHostDocumentSaveParticipant', () => { @@ -39,6 +43,8 @@ suite('ExtHostDocumentSaveParticipant', () => { documents = new ExtHostDocuments(SingleProxyRPCProtocol(null), documentsAndEditors); }); + ensureNoDisposablesAreLeakedInTestSuite(); + test('no listeners, no problem', () => { const participant = new ExtHostDocumentSaveParticipant(nullLogService, documents, mainThreadBulkEdits); return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(() => assert.ok(true)); diff --git a/src/vs/workbench/api/test/browser/extHostTypeConverter.test.ts b/src/vs/workbench/api/test/browser/extHostTypeConverter.test.ts index 07060c51e4d..727c4dea880 100644 --- a/src/vs/workbench/api/test/browser/extHostTypeConverter.test.ts +++ b/src/vs/workbench/api/test/browser/extHostTypeConverter.test.ts @@ -8,11 +8,14 @@ import * as assert from 'assert'; import * as extHostTypes from 'vs/workbench/api/common/extHostTypes'; import { MarkdownString, NotebookCellOutputItem, NotebookData, LanguageSelector, WorkspaceEdit } from 'vs/workbench/api/common/extHostTypeConverters'; import { isEmptyObject } from 'vs/base/common/types'; -import { LogLevel as _MainLogLevel } from 'vs/platform/log/common/log'; import { URI } from 'vs/base/common/uri'; import { IWorkspaceTextEditDto } from 'vs/workbench/api/common/extHost.protocol'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('ExtHostTypeConverter', function () { + + ensureNoDisposablesAreLeakedInTestSuite(); + function size(from: Record): number { let count = 0; for (const key in from) { diff --git a/src/vs/workbench/api/test/browser/mainThreadDocuments.test.ts b/src/vs/workbench/api/test/browser/mainThreadDocuments.test.ts index 69554639bd2..8331e51cc03 100644 --- a/src/vs/workbench/api/test/browser/mainThreadDocuments.test.ts +++ b/src/vs/workbench/api/test/browser/mainThreadDocuments.test.ts @@ -8,6 +8,7 @@ import { BoundModelReferenceCollection } from 'vs/workbench/api/browser/mainThre import { timeout } from 'vs/base/common/async'; import { URI } from 'vs/base/common/uri'; import { extUri } from 'vs/base/common/resources'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('BoundModelReferenceCollection', function () { @@ -21,6 +22,8 @@ suite('BoundModelReferenceCollection', function () { col.dispose(); }); + ensureNoDisposablesAreLeakedInTestSuite(); + test('max age', async function () { let didDispose = false; diff --git a/src/vs/workbench/contrib/snippets/test/browser/snippetFile.test.ts b/src/vs/workbench/contrib/snippets/test/browser/snippetFile.test.ts index e9bb5b9853c..82e14ccc1a6 100644 --- a/src/vs/workbench/contrib/snippets/test/browser/snippetFile.test.ts +++ b/src/vs/workbench/contrib/snippets/test/browser/snippetFile.test.ts @@ -8,9 +8,12 @@ import { SnippetFile, Snippet, SnippetSource } from 'vs/workbench/contrib/snippe import { URI } from 'vs/base/common/uri'; import { SnippetParser } from 'vs/editor/contrib/snippet/browser/snippetParser'; import { generateUuid } from 'vs/base/common/uuid'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('Snippets', function () { + ensureNoDisposablesAreLeakedInTestSuite(); + class TestSnippetFile extends SnippetFile { constructor(filepath: URI, snippets: Snippet[]) { super(SnippetSource.Extension, filepath, undefined, undefined, undefined!, undefined!); diff --git a/src/vs/workbench/contrib/snippets/test/browser/snippetsRegistry.test.ts b/src/vs/workbench/contrib/snippets/test/browser/snippetsRegistry.test.ts index 8a9d39422e4..8c185e766a5 100644 --- a/src/vs/workbench/contrib/snippets/test/browser/snippetsRegistry.test.ts +++ b/src/vs/workbench/contrib/snippets/test/browser/snippetsRegistry.test.ts @@ -6,9 +6,12 @@ import * as assert from 'assert'; import { getNonWhitespacePrefix } from 'vs/workbench/contrib/snippets/browser/snippetsService'; import { Position } from 'vs/editor/common/core/position'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('getNonWhitespacePrefix', () => { + ensureNoDisposablesAreLeakedInTestSuite(); + function assertGetNonWhitespacePrefix(line: string, column: number, expected: string): void { const model = { getLineContent: (lineNumber: number) => line diff --git a/src/vs/workbench/contrib/snippets/test/browser/snippetsRewrite.test.ts b/src/vs/workbench/contrib/snippets/test/browser/snippetsRewrite.test.ts index 54e7e2794f0..5ac2018ef7d 100644 --- a/src/vs/workbench/contrib/snippets/test/browser/snippetsRewrite.test.ts +++ b/src/vs/workbench/contrib/snippets/test/browser/snippetsRewrite.test.ts @@ -5,10 +5,13 @@ import * as assert from 'assert'; import { generateUuid } from 'vs/base/common/uuid'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { Snippet, SnippetSource } from 'vs/workbench/contrib/snippets/browser/snippetsFile'; suite('SnippetRewrite', function () { + ensureNoDisposablesAreLeakedInTestSuite(); + function assertRewrite(input: string, expected: string | boolean): void { const actual = new Snippet(false, ['foo'], 'foo', 'foo', 'foo', input, 'foo', SnippetSource.User, generateUuid()); if (typeof expected === 'boolean') {