Load all data workspace projects directly from workspace (#15921)

* Load all projects directly from workspace

* fixes

* Remove relativity and fix tests

* fix compile

* PR comments

* remove unused

* distro
This commit is contained in:
Charles Gagnon
2021-06-30 10:58:34 -07:00
committed by GitHub
parent 66c1fdc457
commit 7ce791d826
30 changed files with 124 additions and 1113 deletions

View File

@@ -23,7 +23,7 @@ describe('Add Database Reference Dialog', () => {
beforeEach(function (): void {
const dataWorkspaceMock = TypeMoq.Mock.ofType<dataworkspace.IExtension>();
dataWorkspaceMock.setup(x => x.getProjectsInWorkspace(TypeMoq.It.isAny())).returns(() => []);
dataWorkspaceMock.setup(x => x.getProjectsInWorkspace(TypeMoq.It.isAny())).returns(() => Promise.resolve([]));
sinon.stub(vscode.extensions, 'getExtension').returns(<any>{ exports: dataWorkspaceMock.object });
});

View File

@@ -7,7 +7,6 @@ import * as should from 'should';
import * as azdata from 'azdata';
import * as mssql from '../../../../mssql';
import * as sinon from 'sinon';
import * as path from 'path';
import { CreateProjectFromDatabaseDialog } from '../../dialogs/createProjectFromDatabaseDialog';
import { mockConnectionProfile } from '../testContext';
import { ImportDataModel } from '../../models/api/import';
@@ -83,22 +82,11 @@ describe('Create Project From Database Dialog', () => {
should.equal(dialog.projectNameTextBox!.value, 'DatabaseProjectMy Database');
});
it('Should update default workspace name correctly when location and project name are provided', async function (): Promise<void> {
sinon.stub(azdata.connection, 'listDatabases').resolves(['My Database']);
const dialog = new CreateProjectFromDatabaseDialog(mockConnectionProfile);
await dialog.openDialog();
dialog.updateWorkspaceInputbox('testLocation', 'testProjectName');
should.equal(dialog.workspaceInputBox!.value, path.join('testLocation', 'testProjectName.code-workspace'));
});
it('Should include all info in import data model and connect to appropriate call back properties', async function (): Promise<void> {
const dialog = new CreateProjectFromDatabaseDialog(mockConnectionProfile);
sinon.stub(azdata.connection, 'listDatabases').resolves(['My Database']);
await dialog.openDialog();
dialog.workspaceInputBox!.enabled = false;
dialog.projectNameTextBox!.value = 'testProject';
dialog.projectLocationTextBox!.value = 'testLocation';
@@ -110,8 +98,7 @@ describe('Create Project From Database Dialog', () => {
projName: 'testProject',
filePath: 'testLocation',
version: '1.0.0.0',
extractTarget: mssql.ExtractTarget['schemaObjectType'],
newWorkspaceFilePath: undefined
extractTarget: mssql.ExtractTarget['schemaObjectType']
};
dialog.createProjectFromDatabaseCallback = (m) => { model = m; };