Corrects workspace project tree refresh behavior for adding new projects to the workspace (#16650)

* bugfix and updates

* PR feedback

* Deferred promise for project disk scan

* fix casing

* fixing race condition on extension activation, test failure
This commit is contained in:
Benjin Dubishar
2021-08-11 09:11:00 -07:00
committed by GitHub
parent 998c838d8f
commit d0bcba4cc0
12 changed files with 134 additions and 65 deletions

View File

@@ -44,19 +44,19 @@ suite('WorkspaceService', function (): void {
test('getProjectsInWorkspace', async () => {
// No workspace is loaded
let projects = await service.getProjectsInWorkspace();
let projects = await service.getProjectsInWorkspace(undefined, true);
should.strictEqual(projects.length, 0, 'no projects should be returned when no workspace is loaded');
// No projects are present in the workspace file
const workspaceFoldersStub = sinon.stub(vscode.workspace, 'workspaceFolders').value([]);
projects = await service.getProjectsInWorkspace();
projects = await service.getProjectsInWorkspace(undefined, true);
should.strictEqual(projects.length, 0, 'no projects should be returned when projects are present in the workspace file');
workspaceFoldersStub.restore();
// Projects are present
sinon.stub(vscode.workspace, 'workspaceFolders').value([{ uri: vscode.Uri.file('')}]);
sinon.stub(service, 'getAllProjectsInFolder').resolves([vscode.Uri.file('/test/folder/abc.sqlproj'), vscode.Uri.file('/test/folder/folder1/abc1.sqlproj'), vscode.Uri.file('/test/folder/folder2/abc2.sqlproj')]);
projects = await service.getProjectsInWorkspace();
projects = await service.getProjectsInWorkspace(undefined, true);
should.strictEqual(projects.length, 3, 'there should be 3 projects');
const project1 = vscode.Uri.file('/test/folder/abc.sqlproj');
const project2 = vscode.Uri.file('/test/folder/folder1/abc1.sqlproj');