Sql DB project dashboard (#14899)

* First set of changes for workspace dashboard implementing the toolbar

* Workspace dashboard container implementation (#14813)

* First set of changes for workspace dashboard implementing the toolbar (#14160)

* First set of changes for workspace dashboard implementing the toolbar

* Addressed comments

* Addressed one remaining comment

* Removed an extra comma in interfaces file

* Addressed comments

* Addressed comments

* Refactored a bit of code

* Remove unnecessary await

* Addressed comments

* First set of changes for workspace dashboard container

* Update targetPlatform icon+add Time column to deploy table

* Addressed comments

* Removed redundant class definition

* Addressed comments

* Addressed comments

* Change enum to union type in dataworkspace typings

* Fix tests

* Addressed comments
This commit is contained in:
Sakshi Sharma
2021-03-30 17:37:53 -07:00
committed by GitHub
parent 4df77c73bf
commit b774f09b6c
25 changed files with 855 additions and 25 deletions

View File

@@ -136,6 +136,28 @@ suite('WorkspaceService Tests', function (): void {
icon: '',
displayName: 'test project 1'
}
],
[
{
id: 'testAction1',
run: async (): Promise<any> => { return Promise.resolve(); }
},
{
id: 'testAction2',
run: async (): Promise<any> => { return Promise.resolve(); }
}
],
[
{
name: 'tableInfo1',
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
data: [['d1']]
},
{
name: 'tableInfo2',
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
data: [['d1']]
}
]);
const provider2 = createProjectProvider([
{
@@ -145,6 +167,40 @@ suite('WorkspaceService Tests', function (): void {
icon: '',
displayName: 'sql project'
}
],
[
{
id: 'Add',
run: async (): Promise<any> => { return Promise.resolve(); }
},
{
id: 'Schema Compare',
run: async (): Promise<any> => { return Promise.resolve(); }
},
{
id: 'Build',
run: async (): Promise<any> => { return Promise.resolve(); }
},
{
id: 'Publish',
run: async (): Promise<any> => { return Promise.resolve(); }
},
{
id: 'Target Version',
run: async (): Promise<any> => { return Promise.resolve(); }
}
],
[
{
name: 'Deployments',
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
data: [['d1']]
},
{
name: 'Builds',
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
data: [['d1']]
}
]);
sinon.stub(ProjectProviderRegistry, 'providers').value([provider1, provider2]);
const consoleErrorStub = sinon.stub(console, 'error');
@@ -178,7 +234,37 @@ suite('WorkspaceService Tests', function (): void {
icon: '',
displayName: 'test project'
}
]));
],
[{
id: 'Add',
run: async (): Promise<any> => { return Promise.resolve(); }
},
{
id: 'Schema Compare',
run: async (): Promise<any> => { return Promise.resolve(); }
},
{
id: 'Build',
run: async (): Promise<any> => { return Promise.resolve(); }
},
{
id: 'Publish',
run: async (): Promise<any> => { return Promise.resolve(); }
},
{
id: 'Target Version',
run: async (): Promise<any> => { return Promise.resolve(); }
}],
[{
name: 'Deployments',
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
data: [['d1']]
},
{
name: 'Builds',
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
data: [['d1']]
}]));
let provider = await service.getProjectProvider(vscode.Uri.file('abc.sqlproj'));
should.notStrictEqual(provider, undefined, 'Provider should be returned for sqlproj');
should.strictEqual(provider!.supportedProjectTypes[0].projectFileExtension, 'sqlproj');
@@ -193,7 +279,16 @@ suite('WorkspaceService Tests', function (): void {
projectFileExtension: 'csproj',
icon: '',
displayName: 'test cs project'
}]));
}],
[{
id: 'testAction2',
run: async (): Promise<any> => { return Promise.resolve(); }
}],
[{
name: 'tableInfo2',
columns: [{ displayName: 'c1', width: 75, type: 'string' }],
data: [['d1']]
}]));
provider = await service.getProjectProvider(vscode.Uri.file('abc.csproj'));
should.notStrictEqual(provider, undefined, 'Provider should be returned for csproj');
should.strictEqual(provider!.supportedProjectTypes[0].projectFileExtension, 'csproj');
@@ -324,7 +419,7 @@ suite('WorkspaceService Tests', function (): void {
await vscode.workspace.getConfiguration(constants.projectsConfigurationKey).update(constants.showNotAddedProjectsMessageKey, true, true);
sinon.stub(service, 'getProjectsInWorkspace').returns([vscode.Uri.file('abc.sqlproj'), vscode.Uri.file('folder1/abc1.sqlproj')]);
sinon.stub(vscode.workspace, 'workspaceFolders').value([{uri: vscode.Uri.file('.')}]);
sinon.stub(vscode.workspace, 'workspaceFolders').value([{ uri: vscode.Uri.file('.') }]);
sinon.stub(service, 'getAllProjectTypes').resolves([{
projectFileExtension: 'sqlproj',
id: 'sql project',