diff --git a/extensions/sql-database-projects/src/controllers/projectController.ts b/extensions/sql-database-projects/src/controllers/projectController.ts index f538e5251e..1f0859aff4 100644 --- a/extensions/sql-database-projects/src/controllers/projectController.ts +++ b/extensions/sql-database-projects/src/controllers/projectController.ts @@ -660,6 +660,8 @@ export class ProjectsController { if (root && fileOrFolder) { // use relative path and not tree paths for files and folder const allFileEntries = project.files.concat(project.preDeployScripts).concat(project.postDeployScripts).concat(project.noneDeployScripts); + + // trim trailing slash since folders with and without a trailing slash are allowed in a sqlproj const trimmedUri = utils.trimChars(utils.getPlatformSafeFileEntryPath(utils.trimUri(root.fileSystemUri, fileOrFolder.fileSystemUri)), '/'); return allFileEntries.find(x => utils.trimChars(utils.getPlatformSafeFileEntryPath(x.relativePath), '/') === trimmedUri); } diff --git a/extensions/sql-database-projects/src/test/projectTree.test.ts b/extensions/sql-database-projects/src/test/projectTree.test.ts index a7cd908195..b12521322c 100644 --- a/extensions/sql-database-projects/src/test/projectTree.test.ts +++ b/extensions/sql-database-projects/src/test/projectTree.test.ts @@ -108,11 +108,10 @@ describe('Project Tree tests', function (): void { '/TestProj/Database References', '/TestProj/someFolder1']); - // Why are we only matching names - https://github.com/microsoft/azuredatastudio/issues/11026 - should(tree.children.find(x => x.projectUri.path === '/TestProj/someFolder1')?.children.map(y => path.basename(y.projectUri.path))).deepEqual([ - 'MyNestedFolder1', - 'MyNestedFolder2', - 'MyFile2.sql']); + should(tree.children.find(x => x.projectUri.path === '/TestProj/someFolder1')?.children.map(y => y.projectUri.path)).deepEqual([ + '/TestProj/someFolder1/MyNestedFolder1', + '/TestProj/someFolder1/MyNestedFolder2', + '/TestProj/someFolder1/MyFile2.sql']); }); it('Should be able to parse and include relative paths outside project folder', function (): void {