diff --git a/extensions/sql-database-projects/src/models/tree/fileFolderTreeItem.ts b/extensions/sql-database-projects/src/models/tree/fileFolderTreeItem.ts index a25838eccd..a00b0e5d12 100644 --- a/extensions/sql-database-projects/src/models/tree/fileFolderTreeItem.ts +++ b/extensions/sql-database-projects/src/models/tree/fileFolderTreeItem.ts @@ -29,7 +29,7 @@ export class FolderNode extends BaseProjectTreeItem { } public get treeItem(): vscode.TreeItem { - const folderItem = new vscode.TreeItem(this.uri, vscode.TreeItemCollapsibleState.Collapsed); + const folderItem = new vscode.TreeItem(this.fileSystemUri, vscode.TreeItemCollapsibleState.Collapsed); folderItem.contextValue = DatabaseProjectItemType.folder; folderItem.iconPath = IconPathHelper.folder; @@ -57,7 +57,7 @@ export class FileNode extends BaseProjectTreeItem { } public get treeItem(): vscode.TreeItem { - const treeItem = new vscode.TreeItem(this.uri, vscode.TreeItemCollapsibleState.None); + const treeItem = new vscode.TreeItem(this.fileSystemUri, vscode.TreeItemCollapsibleState.None); treeItem.command = { title: 'Open file', diff --git a/extensions/sql-database-projects/src/models/tree/projectTreeItem.ts b/extensions/sql-database-projects/src/models/tree/projectTreeItem.ts index d9fd265471..332d635a82 100644 --- a/extensions/sql-database-projects/src/models/tree/projectTreeItem.ts +++ b/extensions/sql-database-projects/src/models/tree/projectTreeItem.ts @@ -25,7 +25,7 @@ export class ProjectRootTreeItem extends BaseProjectTreeItem { fileSystemUri: vscode.Uri; constructor(project: Project) { - super(vscode.Uri.parse(path.basename(project.projectFilePath, sqlprojExtension)), undefined); + super(vscode.Uri.file(project.projectFilePath), undefined); this.project = project; this.fileSystemUri = vscode.Uri.file(project.projectFilePath); @@ -48,6 +48,7 @@ export class ProjectRootTreeItem extends BaseProjectTreeItem { const projectItem = new vscode.TreeItem(this.uri, vscode.TreeItemCollapsibleState.Expanded); projectItem.contextValue = DatabaseProjectItemType.project; projectItem.iconPath = IconPathHelper.databaseProject; + projectItem.label = path.basename(this.uri.fsPath, sqlprojExtension); return projectItem; } diff --git a/extensions/sql-database-projects/src/test/projectTree.test.ts b/extensions/sql-database-projects/src/test/projectTree.test.ts index 21ef0c059f..4272e50e0a 100644 --- a/extensions/sql-database-projects/src/test/projectTree.test.ts +++ b/extensions/sql-database-projects/src/test/projectTree.test.ts @@ -68,16 +68,16 @@ describe('Project Tree tests', function (): void { const tree = new ProjectRootTreeItem(proj); should(tree.children.map(x => x.uri.path)).deepEqual([ - '/TestProj/Database References', - '/TestProj/duplicateFolder', - '/TestProj/someFolder', - '/TestProj/duplicate.sql']); + '/TestProj.sqlproj/Database References', + '/TestProj.sqlproj/duplicateFolder', + '/TestProj.sqlproj/someFolder', + '/TestProj.sqlproj/duplicate.sql']); - should(tree.children.find(x => x.uri.path === '/TestProj/someFolder')?.children.map(y => y.uri.path)).deepEqual([ - '/TestProj/someFolder/aNestedFolder', - '/TestProj/someFolder/bNestedFolder', - '/TestProj/someFolder/aNestedTest.sql', - '/TestProj/someFolder/bNestedTest.sql']); + should(tree.children.find(x => x.uri.path === '/TestProj.sqlproj/someFolder')?.children.map(y => y.uri.path)).deepEqual([ + '/TestProj.sqlproj/someFolder/aNestedFolder', + '/TestProj.sqlproj/someFolder/bNestedFolder', + '/TestProj.sqlproj/someFolder/aNestedTest.sql', + '/TestProj.sqlproj/someFolder/bNestedTest.sql']); should(tree.children.map(x => x.treeItem.contextValue)).deepEqual([ DatabaseProjectItemType.referencesRoot, @@ -85,7 +85,7 @@ describe('Project Tree tests', function (): void { DatabaseProjectItemType.folder, DatabaseProjectItemType.file]); - should(tree.children.find(x => x.uri.path === '/TestProj/someFolder')?.children.map(y => y.treeItem.contextValue)).deepEqual([ + should(tree.children.find(x => x.uri.path === '/TestProj.sqlproj/someFolder')?.children.map(y => y.treeItem.contextValue)).deepEqual([ DatabaseProjectItemType.folder, DatabaseProjectItemType.folder, DatabaseProjectItemType.file, @@ -104,11 +104,11 @@ describe('Project Tree tests', function (): void { const tree = new ProjectRootTreeItem(proj); should(tree.children.map(x => x.uri.path)).deepEqual([ - '/TestProj/Database References', - '/TestProj/someFolder1']); + '/TestProj.sqlproj/Database References', + '/TestProj.sqlproj/someFolder1']); // Why are we only matching names - https://github.com/microsoft/azuredatastudio/issues/11026 - should(tree.children.find(x => x.uri.path === '/TestProj/someFolder1')?.children.map(y => path.basename(y.uri.path))).deepEqual([ + should(tree.children.find(x => x.uri.path === '/TestProj.sqlproj/someFolder1')?.children.map(y => path.basename(y.uri.path))).deepEqual([ 'MyNestedFolder1', 'MyNestedFolder2', 'MyFile2.sql']); @@ -126,8 +126,8 @@ describe('Project Tree tests', function (): void { const tree = new ProjectRootTreeItem(proj); should(tree.children.map(x => x.uri.path)).deepEqual([ - '/TestProj/Database References', - '/TestProj/MyFile1.sql', - '/TestProj/MyFile2.sql']); + '/Root/Level1/Level2/TestProj.sqlproj/Database References', + '/Root/Level1/Level2/TestProj.sqlproj/MyFile1.sql', + '/Root/Level1/Level2/TestProj.sqlproj/MyFile2.sql']); }); });