From 960bb12ea8606d836cbe8bca9c22d3ed5e1f5a7b Mon Sep 17 00:00:00 2001 From: Sophio Japharidze <104207951+sophio-japharidze-sonarsource@users.noreply.github.com> Date: Tue, 26 Nov 2024 15:32:09 +0000 Subject: [PATCH] SLVSCODE-873 crawl directory before listFilesInFolder is called * SLVSCODE-873 crawl directory before listFilesInFolder is called * SLVSCODE-873 keep awaiting for the directory crawl to complete --- its/src/test/javaSuite/java.test.ts | 3 --- src/extension.ts | 5 ++++- test/suite/autobinding.test.ts | 3 +++ test/suite/sharedConnectedModeSettings.test.ts | 4 ++++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/its/src/test/javaSuite/java.test.ts b/its/src/test/javaSuite/java.test.ts index b142492aa..f32750277 100644 --- a/its/src/test/javaSuite/java.test.ts +++ b/its/src/test/javaSuite/java.test.ts @@ -66,9 +66,6 @@ suite('Java Test Suite', () => { const rangeInMiddleOfThrowsMyException = new vscode.Range(8, 54, 8, 54); const codeActionsResult = (await vscode.commands.executeCommand<(vscode.Command | vscode.CodeAction)[]>('vscode.executeCodeActionProvider', document.uri, rangeInMiddleOfThrowsMyException, vscode.CodeActionKind.QuickFix.value)); // With old versions of VSCode, code actions are not necessarily filtered on kind - console.log('+++++++', codeActionsResult[0].title) - console.log('+++++++', codeActionsResult[2].title) - console.log('+++++++', codeActionsResult[1].title) const expectedActionTitles = [ "SonarQube: Deactivate rule 'java:S1130'", "SonarQube: Remove \"MyException\"", diff --git a/src/extension.ts b/src/extension.ts index 832ae8630..a6daba4d1 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -231,6 +231,10 @@ export async function activate(context: VSCode.ExtensionContext) { }); FixSuggestionService.init(languageClient); + VSCode.workspace.workspaceFolders?.map(async (folder) => { + await FileSystemServiceImpl.instance.crawlDirectory(folder.uri); + }); + installCustomRequestHandlers(context); const referenceBranchStatusItem = VSCode.window.createStatusBarItem(VSCode.StatusBarAlignment.Left, 1); @@ -568,7 +572,6 @@ function installCustomRequestHandlers(context: VSCode.ExtensionContext) { languageClient.onNotification(protocol.ShowRuleDescriptionNotification.type, showRuleDescription(context)); languageClient.onNotification(protocol.SuggestBindingNotification.type, params => suggestBinding(params)); languageClient.onRequest(protocol.ListFilesInFolderRequest.type, async (params) => { - await FileSystemServiceImpl.instance.crawlDirectory(VSCode.Uri.parse(params.folderUri)); return AutoBindingService.instance.listAutobindingFilesInFolder(params); } ); diff --git a/test/suite/autobinding.test.ts b/test/suite/autobinding.test.ts index a317a3e24..659dfabf1 100644 --- a/test/suite/autobinding.test.ts +++ b/test/suite/autobinding.test.ts @@ -242,6 +242,9 @@ suite('Auto Binding Test Suite', () => { // crawl the directory await FileSystemServiceImpl.instance.crawlDirectory(VSCode.Uri.parse(params.folderUri)); + // make sure results get in place + await sleep(500); + const foundFiles: ListFilesInScopeResponse = await underTest.listAutobindingFilesInFolder(params); expect(foundFiles.foundFiles).to.not.be.empty; diff --git a/test/suite/sharedConnectedModeSettings.test.ts b/test/suite/sharedConnectedModeSettings.test.ts index 2ccefe3b8..af614ba1a 100644 --- a/test/suite/sharedConnectedModeSettings.test.ts +++ b/test/suite/sharedConnectedModeSettings.test.ts @@ -59,6 +59,7 @@ suite('Shared Connected Mode service test suite', () => { // populate cache await FileSystemServiceImpl.instance.crawlDirectory(workspaceFolderUri); + await sleep(200); const result = await underTest.computeSharedConnectedModeFileName(workspaceFolderUri.toString()); @@ -74,6 +75,7 @@ suite('Shared Connected Mode service test suite', () => { tempFiles.push(solutionFileUri); await FileSystemServiceImpl.instance.crawlDirectory(workspaceFolder1.uri); + await sleep(200); const result = await underTest.computeSharedConnectedModeFileName(workspaceFolder1.uri.toString()); @@ -90,6 +92,7 @@ suite('Shared Connected Mode service test suite', () => { tempFiles.push(solutionFileUri1, solutionFileUri2); await FileSystemServiceImpl.instance.crawlDirectory(workspaceFolder1.uri); + await sleep(200); const resultPromise = underTest.computeSharedConnectedModeFileName(workspaceFolder1.uri.toString()); await selectFirstQuickPickItem(); @@ -110,6 +113,7 @@ suite('Shared Connected Mode service test suite', () => { } await FileSystemServiceImpl.instance.crawlDirectory(workspaceFolder.uri); + await sleep(200); await underTest.createSharedConnectedModeSettingsFile(workspaceFolder);