Recursively delete folders in database projects (#14740)

* Recursively rmdir

* Remove comment

* Add test

* Add test assertions

* Comment

* Recursively rmdir

* Revert "Comment"

This reverts commit 287e7f824adfb2fcedb18ee222b34b8c6a5305b5.

* Re-commit Simplify Test
This commit is contained in:
Zi Chen
2021-03-18 09:20:41 -07:00
committed by GitHub
parent 07bd534453
commit 03d2ac7206
2 changed files with 30 additions and 6 deletions

View File

@@ -245,6 +245,33 @@ describe('ProjectsController', function (): void {
should(await exists(noneEntry.fsUri.fsPath)).equal(true, 'none entry pre-deployment script is supposed to still exist on disk');
});
it('Should delete folders with excluded items', async function (): Promise<void> {
let proj = await testUtils.createTestProject(templates.newSqlProjectTemplate);
const setupResult = await setupDeleteExcludeTest(proj);
const scriptEntry = setupResult[0], projTreeRoot = setupResult[1];
const upperFolder = projTreeRoot.children.find(x => x.friendlyName === 'UpperFolder')!;
const lowerFolder = upperFolder.children.find(x => x.friendlyName === 'LowerFolder')!;
const projController = new ProjectsController();
// Exclude files under LowerFolder
await projController.exclude(createWorkspaceTreeItem(<FileNode>lowerFolder.children.find(x => x.friendlyName === 'someScript.sql')!));
await projController.exclude(createWorkspaceTreeItem(<FileNode>lowerFolder.children.find(x => x.friendlyName === 'someOtherScript.sql')!));
// Delete UpperFolder
await projController.delete(createWorkspaceTreeItem(<FolderNode>projTreeRoot.children.find(x => x.friendlyName === 'UpperFolder')!));
// Reload edited sqlproj from disk
proj = await Project.openProject(proj.projectFilePath);
// Confirm result
should(proj.files.some(x => x.relativePath === 'UpperFolder')).equal(false, 'UpperFolder should not be part of proj file any more');
should(await exists(scriptEntry.fsUri.fsPath)).equal(false, 'script is supposed to be deleted from disk');
should(await exists(lowerFolder.uri.fsPath)).equal(false, 'LowerFolder is supposed to be deleted from disk');
should(await exists(upperFolder.uri.fsPath)).equal(false, 'UpperFolder is supposed to be deleted from disk');
});
it('Should reload correctly after changing sqlproj file', async function (): Promise<void> {
// create project
const folderPath = await testUtils.generateTestFolderPath();