mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-03 17:23:42 -05:00
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:
@@ -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');
|
||||
|
||||
@@ -20,12 +20,12 @@ suite('workspaceTreeDataProvider Tests', function (): void {
|
||||
sinon.restore();
|
||||
});
|
||||
|
||||
test('test refresh()', () => {
|
||||
test('test refresh()', async () => {
|
||||
const treeDataChangeHandler = sinon.stub();
|
||||
treeProvider.onDidChangeTreeData!((e) => {
|
||||
treeDataChangeHandler(e);
|
||||
});
|
||||
treeProvider.refresh();
|
||||
await treeProvider.refresh();
|
||||
should.strictEqual(treeDataChangeHandler.calledOnce, true);
|
||||
});
|
||||
|
||||
@@ -100,16 +100,17 @@ suite('workspaceTreeDataProvider Tests', function (): void {
|
||||
}],
|
||||
getDashboardComponents: (projectFile: string): IDashboardTable[] => {
|
||||
return [{
|
||||
name: 'Deployments',
|
||||
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
|
||||
data: [['d1']]
|
||||
},
|
||||
{
|
||||
name: 'Builds',
|
||||
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
|
||||
data: [['d1']]
|
||||
}];
|
||||
}};
|
||||
name: 'Deployments',
|
||||
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
|
||||
data: [['d1']]
|
||||
},
|
||||
{
|
||||
name: 'Builds',
|
||||
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
|
||||
data: [['d1']]
|
||||
}];
|
||||
}
|
||||
};
|
||||
const getProjectProviderStub = sinon.stub(workspaceService, 'getProjectProvider');
|
||||
getProjectProviderStub.onFirstCall().resolves(undefined);
|
||||
getProjectProviderStub.onSecondCall().resolves(projectProvider);
|
||||
|
||||
Reference in New Issue
Block a user