filter data-workspace projects by ext (#14354)

* add filtering by project extension

* Fix tests

* addressing comments

* convert to lowercase
This commit is contained in:
Kim Santiago
2021-02-22 13:21:25 -08:00
committed by GitHub
parent f62889002d
commit 551eb76a42
7 changed files with 17 additions and 9 deletions

View File

@@ -236,7 +236,7 @@ export async function getSqlProjectFilesInFolder(folderPath: string): Promise<st
*/
export function getSqlProjectsInWorkspace(): vscode.Uri[] {
const api = getDataWorkspaceExtensionApi();
return api.getProjectsInWorkspace().filter((p: vscode.Uri) => path.extname(p.fsPath) === constants.sqlprojExtension);
return api.getProjectsInWorkspace(constants.sqlprojExtension);
}
export function getDataWorkspaceExtensionApi(): dataworkspace.IExtension {

View File

@@ -560,7 +560,7 @@ export class ProjectsController {
if ((<IProjectReferenceSettings>settings).projectName !== undefined) {
// get project path and guid
const projectReferenceSettings = settings as IProjectReferenceSettings;
const workspaceProjects = await utils.getSqlProjectsInWorkspace();
const workspaceProjects = utils.getSqlProjectsInWorkspace();
const referencedProject = await Project.openProject(workspaceProjects.filter(p => path.parse(p.fsPath).name === projectReferenceSettings.projectName)[0].fsPath);
const relativePath = path.relative(project.projectFolderPath, referencedProject?.projectFilePath!);
projectReferenceSettings.projectRelativePath = vscode.Uri.file(relativePath);

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()).returns(() => []);
dataWorkspaceMock.setup(x => x.getProjectsInWorkspace(TypeMoq.It.isAny())).returns(() => []);
sinon.stub(vscode.extensions, 'getExtension').returns(<any>{ exports: dataWorkspaceMock.object });
});

View File

@@ -550,7 +550,7 @@ describe('ProjectsController', function (): void {
const project2 = await Project.openProject(vscode.Uri.file(projPath2).fsPath);
const showErrorMessageSpy = sinon.spy(vscode.window, 'showErrorMessage');
const dataWorkspaceMock = TypeMoq.Mock.ofType<dataworkspace.IExtension>();
dataWorkspaceMock.setup(x => x.getProjectsInWorkspace()).returns(() => [vscode.Uri.file(project1.projectFilePath), vscode.Uri.file(project2.projectFilePath)]);
dataWorkspaceMock.setup(x => x.getProjectsInWorkspace(TypeMoq.It.isAny())).returns(() => [vscode.Uri.file(project1.projectFilePath), vscode.Uri.file(project2.projectFilePath)]);
sinon.stub(vscode.extensions, 'getExtension').returns(<any>{ exports: dataWorkspaceMock.object });
// add project reference from project1 to project2