Skip to content

Commit

Permalink
update deletion command to refresh all in the tree
Browse files Browse the repository at this point in the history
Signed-off-by: Nikolai Imbirev <nikolay.imbirev@broadcom.com>
  • Loading branch information
Nikolai Imbirev committed Nov 16, 2021
1 parent 2230445 commit 7452512
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 15 deletions.
Expand Up @@ -35,6 +35,7 @@ import * as globals from "../../../src/globals";
import { createDatasetSessionNode, createDatasetTree } from "../../../__mocks__/mockCreators/datasets";
import { Profiles } from "../../../src/Profiles";
import * as SpoolProvider from "../../../src/SpoolProvider";
import * as refreshActions from "../../../src/shared/refresh";

const activeTextEditorDocument = jest.fn();

Expand Down Expand Up @@ -1015,14 +1016,15 @@ describe("job deletion command", () => {
configurable: true,
});
warningDialogStub.mockResolvedValueOnce("Delete");
jest.spyOn(refreshActions, "refreshAll");
const jobsProvider = createJobsTree(session, job, profile, createTreeView());
jobsProvider.delete.mockResolvedValueOnce(Promise.resolve());
const jobNode = new Job("jobtest", vscode.TreeItemCollapsibleState.Expanded, null, session, job, profile);
// act
await jobActions.deleteCommand(jobsProvider, jobNode);
// assert
expect(mocked(jobsProvider.delete)).toBeCalledWith(jobNode);
expect(mocked(jobsProvider.refreshElement)).toBeCalledWith(jobNode.getSessionNode());
expect(refreshActions.refreshAll).toHaveBeenCalledWith(jobsProvider);
});

it("should not delete a job in case user cancelled deletion", async () => {
Expand All @@ -1040,7 +1042,6 @@ describe("job deletion command", () => {
await jobActions.deleteCommand(jobsProvider, jobNode);
// assert
expect(mocked(jobsProvider.delete)).not.toBeCalled();
expect(mocked(jobsProvider.refreshElement)).not.toBeCalled();
});

it("should not refresh the current job session after an error during job deletion", async () => {
Expand All @@ -1058,6 +1059,5 @@ describe("job deletion command", () => {
await jobActions.deleteCommand(jobsProvider, jobNode);
// assert
expect(mocked(jobsProvider.delete)).toBeCalledWith(jobNode);
expect(mocked(jobsProvider.refreshElement)).not.toBeCalled();
});
});
16 changes: 13 additions & 3 deletions packages/zowe-explorer/src/extension.ts
Expand Up @@ -138,6 +138,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<ZoweEx
preferencesTempPath = updatedPreferencesTempPath;
}
if (e.affectsConfiguration("Zowe-Automatic-Validation")) {
await Profiles.getInstance().refresh(ZoweExplorerApiRegister.getInstance());
await refreshActions.refreshAll(datasetProvider);
await refreshActions.refreshAll(ussFileProvider);
await refreshActions.refreshAll(jobsProvider);
Expand Down Expand Up @@ -228,7 +229,10 @@ function initDatasetProvider(context: vscode.ExtensionContext, datasetProvider:
datasetProvider.createZoweSession(datasetProvider)
);
vscode.commands.registerCommand("zowe.ds.addFavorite", async (node) => datasetProvider.addFavorite(node));
vscode.commands.registerCommand("zowe.ds.refreshAll", () => refreshActions.refreshAll(datasetProvider));
vscode.commands.registerCommand("zowe.ds.refreshAll", async () => {
await Profiles.getInstance().refresh(ZoweExplorerApiRegister.getInstance());
await refreshActions.refreshAll(datasetProvider);
});
vscode.commands.registerCommand("zowe.ds.refreshNode", (node) => dsActions.refreshPS(node));
vscode.commands.registerCommand("zowe.ds.refreshDataset", (node) =>
dsActions.refreshDataset(node, datasetProvider)
Expand Down Expand Up @@ -295,7 +299,10 @@ function initUSSProvider(context: vscode.ExtensionContext, ussFileProvider: IZow
vscode.commands.registerCommand("zowe.uss.addSession", async () =>
ussFileProvider.createZoweSession(ussFileProvider)
);
vscode.commands.registerCommand("zowe.uss.refreshAll", () => refreshActions.refreshAll(ussFileProvider));
vscode.commands.registerCommand("zowe.uss.refreshAll", async () => {
await Profiles.getInstance().refresh(ZoweExplorerApiRegister.getInstance());
await refreshActions.refreshAll(ussFileProvider);
});
vscode.commands.registerCommand("zowe.uss.refreshUSS", (node: IZoweUSSTreeNode) => node.refreshUSS());
vscode.commands.registerCommand("zowe.uss.refreshUSSInTree", (node: IZoweUSSTreeNode) =>
ussActions.refreshUSSInTree(node, ussFileProvider)
Expand Down Expand Up @@ -376,7 +383,10 @@ function initJobsProvider(context: vscode.ExtensionContext, jobsProvider: IZoweT
vscode.commands.registerCommand("zowe.jobs.refreshJobsServer", async (job) =>
jobActions.refreshJobsServer(job, jobsProvider)
);
vscode.commands.registerCommand("zowe.jobs.refreshAllJobs", async () => refreshActions.refreshAll(jobsProvider));
vscode.commands.registerCommand("zowe.jobs.refreshAllJobs", async () => {
await Profiles.getInstance().refresh(ZoweExplorerApiRegister.getInstance());
await refreshActions.refreshAll(jobsProvider);
});
vscode.commands.registerCommand("zowe.jobs.refreshJob", async (job) => jobActions.refreshJob(job, jobsProvider));
vscode.commands.registerCommand("zowe.jobs.addJobsSession", () => jobsProvider.createZoweSession(jobsProvider));
vscode.commands.registerCommand("zowe.jobs.setOwner", (job) => jobActions.setOwner(job, jobsProvider));
Expand Down
11 changes: 3 additions & 8 deletions packages/zowe-explorer/src/job/actions.ts
Expand Up @@ -20,6 +20,7 @@ import * as nls from "vscode-nls";
import { toUniqueJobFileUri } from "../SpoolProvider";
import { IProfileLoaded } from "@zowe/imperative";
import * as globals from "../globals";
import { refreshAll as refreshAllJobs } from "../shared/refresh";

// Set up localization
nls.config({
Expand Down Expand Up @@ -288,8 +289,7 @@ const deleteSingleJob = async (job: IZoweJobTreeNode, jobsProvider: IZoweTree<IZ
await errorHandling(error.toString(), job.getProfile().name, error.message.toString());
return;
}
const jobSession = job.getSessionNode();
await refreshJobsServer(jobSession, jobsProvider);
await refreshAllJobs(jobsProvider);
vscode.window.showInformationMessage(localize("deleteCommand.job", "Job {0} deleted.", jobName));
};

Expand Down Expand Up @@ -332,12 +332,7 @@ const deleteMultipleJobs = async (
})
.filter((result) => result !== undefined);
if (deletedJobs.length) {
await Promise.all(
deletedJobs
.map((jobNode) => jobNode.getSessionNode())
.filter((jobSession, index, jobSessions) => jobSessions.indexOf(jobSession) === index)
.map((jobSession) => refreshJobsServer(jobSession, jobsProvider))
);
await refreshAllJobs(jobsProvider);
vscode.window.showInformationMessage(
localize(
"deleteCommand.multipleJobs",
Expand Down
1 change: 0 additions & 1 deletion packages/zowe-explorer/src/shared/refresh.ts
Expand Up @@ -25,7 +25,6 @@ import * as contextually from "../shared/context";
* @param {IZoweTree} treeProvider
*/
export async function refreshAll(treeProvider: IZoweTree<IZoweTreeNode>) {
await Profiles.getInstance().refresh(ZoweExplorerApiRegister.getInstance());
treeProvider.mSessionNodes.forEach(async (sessNode) => {
const setting = (await PersistentFilters.getDirectValue("Zowe-Automatic-Validation")) as boolean;
if (contextually.isSessionNotFav(sessNode)) {
Expand Down
1 change: 1 addition & 0 deletions packages/zowe-explorer/src/uss/actions.ts
Expand Up @@ -69,6 +69,7 @@ export async function createUSSNode(
filePath = `${filePath}/${name}`;
await ZoweExplorerApiRegister.getUssApi(node.getProfile()).create(filePath, nodeType);
if (isTopLevel) {
await Profiles.getInstance().refresh(ZoweExplorerApiRegister.getInstance());
refreshAll(ussFileProvider);
} else {
ussFileProvider.refreshElement(node);
Expand Down

0 comments on commit 7452512

Please sign in to comment.