From cbda1f39c5ec292bbbd7da7bcb2eec582e804ad9 Mon Sep 17 00:00:00 2001 From: Connor Peet Date: Mon, 13 Jan 2025 17:06:58 -0800 Subject: [PATCH] testing: add a command to get tests in a uri --- .../contrib/testing/browser/testing.contribution.ts | 9 +++++++++ src/vs/workbench/contrib/testing/common/testId.ts | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/src/vs/workbench/contrib/testing/browser/testing.contribution.ts b/src/vs/workbench/contrib/testing/browser/testing.contribution.ts index 57543747b1394..986b638562983 100644 --- a/src/vs/workbench/contrib/testing/browser/testing.contribution.ts +++ b/src/vs/workbench/contrib/testing/browser/testing.contribution.ts @@ -48,6 +48,7 @@ import { LifecyclePhase } from '../../../services/lifecycle/common/lifecycle.js' import { IViewsService } from '../../../services/views/common/viewsService.js'; import { allTestActions, discoverAndRunTests } from './testExplorerActions.js'; import './testingConfigurationUi.js'; +import { URI } from '../../../../base/common/uri.js'; registerSingleton(ITestService, TestService, InstantiationType.Delayed); registerSingleton(ITestResultStorage, TestResultStorage, InstantiationType.Delayed); @@ -279,5 +280,13 @@ CommandsRegistry.registerCommand({ } }); +CommandsRegistry.registerCommand({ + id: 'vscode.testing.getTestsInFile', + handler: async (accessor: ServicesAccessor, uri: URI) => { + const testService = accessor.get(ITestService); + return [...testService.collection.getNodeByUrl(uri)].map(t => TestId.split(t.item.extId)); + } +}); + Registry.as(ConfigurationExtensions.Configuration).registerConfiguration(testingConfiguration); diff --git a/src/vs/workbench/contrib/testing/common/testId.ts b/src/vs/workbench/contrib/testing/common/testId.ts index 0b66669342a54..73bac84ca433c 100644 --- a/src/vs/workbench/contrib/testing/common/testId.ts +++ b/src/vs/workbench/contrib/testing/common/testId.ts @@ -77,6 +77,13 @@ export class TestId { return new TestId([...base.path, b]); } + /** + * Splits a test ID into its parts. + */ + public static split(idString: string) { + return idString.split(TestIdPathParts.Delimiter); + } + /** * Gets the string ID resulting from adding b to the base ID. */