From c41f1c4c28fe5d9720ea51799bd2d1107e6a244a Mon Sep 17 00:00:00 2001 From: Shveta Sachdeva Date: Wed, 11 Sep 2024 13:30:51 -0700 Subject: [PATCH 1/5] Task manager enable premeption Signed-off-by: Shveta Sachdeva --- .../migration/task-manager/task-manager.ts | 24 +++++++- .../task-manager/miscellaneous.test.ts | 60 +++++++++++++++++++ 2 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts diff --git a/cypress/e2e/models/migration/task-manager/task-manager.ts b/cypress/e2e/models/migration/task-manager/task-manager.ts index 1c83f5951..a4b9b9640 100644 --- a/cypress/e2e/models/migration/task-manager/task-manager.ts +++ b/cypress/e2e/models/migration/task-manager/task-manager.ts @@ -19,7 +19,9 @@ import { clearAllFilters, click, clickByText, + clickKebabMenuOptionArchetype, inputText, + performRowActionByIcon, selectFilter, selectItemsPerPage, selectUserPerspective, @@ -33,10 +35,13 @@ import { migration, TaskFilter, trTag, + button, + tdTag, } from "../../../types/constants"; -import { searchButton, searchInput } from "../../../views/common.view"; +import { sideKebabMenu } from "../../../views/applicationinventory.view"; +import { actionMenuItem, searchButton, searchInput } from "../../../views/common.view"; import { navMenu } from "../../../views/menu.view"; -import { tasksStatusColumn } from "../../../views/taskmanager.view"; +import { kebabMenu, tasksStatusColumn } from "../../../views/taskmanager.view"; export class TaskManager { static fullUrl = Cypress.env("tackleUrl") + "/tasks"; @@ -77,4 +82,19 @@ export class TaskManager { click(searchButton); cy.wait(2 * SEC); } + + public static enablePreemption(rowName: string): void { + TaskManager.open(10); + // clickKebabMenuOptionArchetype(rowName, "Enable preemption"); + cy.contains(rowName) + .next(tdTag) + .contains("Pending") + .closest(trTag) + .within(() => { + click(sideKebabMenu); + }); + cy.get(actionMenuItem).contains("Enable preemption").click(); + + // clickByText(button, "Enable preemption"); + } } diff --git a/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts b/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts new file mode 100644 index 000000000..13cfdc973 --- /dev/null +++ b/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts @@ -0,0 +1,60 @@ +/* +Copyright © 2021 the Konveyor Contributors (https://konveyor.io/) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +/// + +import { + checkSuccessAlert, + deleteApplicationTableRows, + getRandomAnalysisData, + getRandomApplicationData, + login, + validateTextPresence, +} from "../../../../utils/utils"; +import { Analysis } from "../../../models/migration/applicationinventory/analysis"; +import { TaskManager } from "../../../models/migration/task-manager/task-manager"; +import { TaskManagerColumns } from "../../../views/taskmanager.view"; +import * as commonView from "../../../views/common.view"; + +describe(["@tier2"], "Enable Premeption in Task Manager Page", function () { + const applicationsList: Analysis[] = []; + + before("Login", function () { + login(); + deleteApplicationTableRows(); + cy.fixture("application").then((appData) => { + cy.fixture("analysis").then((analysisData) => { + for (let i = 0; i < 3; i++) { + const bookServerApp = new Analysis( + getRandomApplicationData("TaskFilteringApp1_" + i, { + sourceData: appData["bookserver-app"], + }), + getRandomAnalysisData(analysisData["analysis_for_openSourceLibraries"]) + ); + applicationsList.push(bookServerApp); + } + applicationsList.forEach((application) => application.create()); + }); + }); + }); + + it("Enable Premeption", function () { + const dayTraderApp = applicationsList[1]; + Analysis.analyzeAll(dayTraderApp); + TaskManager.enablePreemption(applicationsList[0].name); + checkSuccessAlert(commonView.infoAlertMessage, "Update request submitted."); + validateTextPresence(TaskManagerColumns.preemption, "true"); + }); +}); From 0c1e601de375233fd4c63a314a13e15d96d9b140 Mon Sep 17 00:00:00 2001 From: Shveta Sachdeva Date: Wed, 11 Sep 2024 13:33:56 -0700 Subject: [PATCH 2/5] Task manager enable premeption Signed-off-by: Shveta Sachdeva --- cypress/e2e/models/migration/task-manager/task-manager.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cypress/e2e/models/migration/task-manager/task-manager.ts b/cypress/e2e/models/migration/task-manager/task-manager.ts index a4b9b9640..2ffbebe58 100644 --- a/cypress/e2e/models/migration/task-manager/task-manager.ts +++ b/cypress/e2e/models/migration/task-manager/task-manager.ts @@ -83,9 +83,8 @@ export class TaskManager { cy.wait(2 * SEC); } - public static enablePreemption(rowName: string): void { + public static enablePreemption(rowName: string): void{ TaskManager.open(10); - // clickKebabMenuOptionArchetype(rowName, "Enable preemption"); cy.contains(rowName) .next(tdTag) .contains("Pending") @@ -94,7 +93,5 @@ export class TaskManager { click(sideKebabMenu); }); cy.get(actionMenuItem).contains("Enable preemption").click(); - - // clickByText(button, "Enable preemption"); } } From ba64041e1e20688c584a07aa8948f42fabaaddcf Mon Sep 17 00:00:00 2001 From: Shveta Sachdeva Date: Thu, 12 Sep 2024 07:23:35 -0700 Subject: [PATCH 3/5] Task manager enable premeption Signed-off-by: Shveta Sachdeva --- cypress/e2e/models/migration/task-manager/task-manager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/e2e/models/migration/task-manager/task-manager.ts b/cypress/e2e/models/migration/task-manager/task-manager.ts index 2ffbebe58..488c22e03 100644 --- a/cypress/e2e/models/migration/task-manager/task-manager.ts +++ b/cypress/e2e/models/migration/task-manager/task-manager.ts @@ -83,7 +83,7 @@ export class TaskManager { cy.wait(2 * SEC); } - public static enablePreemption(rowName: string): void{ + public static enablePreemption(rowName: string): void { TaskManager.open(10); cy.contains(rowName) .next(tdTag) From 36178369b55590adc8be55af29efc86cf42dbda7 Mon Sep 17 00:00:00 2001 From: Shveta Sachdeva Date: Thu, 12 Sep 2024 14:28:14 -0700 Subject: [PATCH 4/5] Task manager enable premeption Signed-off-by: Shveta Sachdeva --- .../migration/task-manager/task-manager.ts | 18 ++++++------------ .../task-manager/miscellaneous.test.ts | 11 ++++++----- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/cypress/e2e/models/migration/task-manager/task-manager.ts b/cypress/e2e/models/migration/task-manager/task-manager.ts index 488c22e03..ccbb32f9a 100644 --- a/cypress/e2e/models/migration/task-manager/task-manager.ts +++ b/cypress/e2e/models/migration/task-manager/task-manager.ts @@ -16,16 +16,12 @@ limitations under the License. /// import { - clearAllFilters, click, clickByText, - clickKebabMenuOptionArchetype, inputText, - performRowActionByIcon, selectFilter, selectItemsPerPage, selectUserPerspective, - validateNumberPresence, } from "../../../../utils/utils"; import { SEC, @@ -35,13 +31,11 @@ import { migration, TaskFilter, trTag, - button, - tdTag, } from "../../../types/constants"; import { sideKebabMenu } from "../../../views/applicationinventory.view"; import { actionMenuItem, searchButton, searchInput } from "../../../views/common.view"; import { navMenu } from "../../../views/menu.view"; -import { kebabMenu, tasksStatusColumn } from "../../../views/taskmanager.view"; +import { tasksStatusColumn } from "../../../views/taskmanager.view"; export class TaskManager { static fullUrl = Cypress.env("tackleUrl") + "/tasks"; @@ -83,15 +77,15 @@ export class TaskManager { cy.wait(2 * SEC); } - public static enablePreemption(rowName: string): void { + public static setPreemption(preemption: boolean): void { + const setPreemption = preemption === true ? "Enable preemption" : "Disable preemption"; + TaskManager.open(10); - cy.contains(rowName) - .next(tdTag) - .contains("Pending") + cy.contains("Pending") .closest(trTag) .within(() => { click(sideKebabMenu); }); - cy.get(actionMenuItem).contains("Enable preemption").click(); + cy.get(actionMenuItem).contains(setPreemption).click(); } } diff --git a/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts b/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts index 13cfdc973..16c360bab 100644 --- a/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts +++ b/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts @@ -36,7 +36,7 @@ describe(["@tier2"], "Enable Premeption in Task Manager Page", function () { deleteApplicationTableRows(); cy.fixture("application").then((appData) => { cy.fixture("analysis").then((analysisData) => { - for (let i = 0; i < 3; i++) { + for (let i = 0; i < 4; i++) { const bookServerApp = new Analysis( getRandomApplicationData("TaskFilteringApp1_" + i, { sourceData: appData["bookserver-app"], @@ -50,11 +50,12 @@ describe(["@tier2"], "Enable Premeption in Task Manager Page", function () { }); }); - it("Enable Premeption", function () { - const dayTraderApp = applicationsList[1]; - Analysis.analyzeAll(dayTraderApp); - TaskManager.enablePreemption(applicationsList[0].name); + it("Test Enable and Disable Premeption", function () { + TaskManager.setPreemption(true); checkSuccessAlert(commonView.infoAlertMessage, "Update request submitted."); validateTextPresence(TaskManagerColumns.preemption, "true"); + TaskManager.setPreemption(false); + checkSuccessAlert(commonView.infoAlertMessage, "Update request submitted."); + validateTextPresence(TaskManagerColumns.preemption, "false"); }); }); From b24efcf647898bcef99a14f5348015b4e9e835f0 Mon Sep 17 00:00:00 2001 From: Shveta Sachdeva Date: Thu, 12 Sep 2024 17:33:56 -0700 Subject: [PATCH 5/5] Task manager enable premeption Signed-off-by: Shveta Sachdeva --- .../migration/task-manager/task-manager.ts | 19 ++++++++ .../task-manager/miscellaneous.test.ts | 48 +++++++++++++------ 2 files changed, 53 insertions(+), 14 deletions(-) diff --git a/cypress/e2e/models/migration/task-manager/task-manager.ts b/cypress/e2e/models/migration/task-manager/task-manager.ts index ccbb32f9a..aac517ad1 100644 --- a/cypress/e2e/models/migration/task-manager/task-manager.ts +++ b/cypress/e2e/models/migration/task-manager/task-manager.ts @@ -88,4 +88,23 @@ export class TaskManager { }); cy.get(actionMenuItem).contains(setPreemption).click(); } + + public static cancelTask(status: string): void { + TaskManager.open(10); + cy.contains(status) + .closest(trTag) + .within(() => { + click(sideKebabMenu); + }); + if ( + status == TaskStatus.pending || + status == TaskStatus.running || + status == TaskStatus.ready || + status == TaskStatus.postponed + ) { + cy.get(actionMenuItem).contains("Cancel").click(); + } else { + cy.get(actionMenuItem).contains("Cancel").should("not.be.enabled"); + } + } } diff --git a/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts b/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts index 16c360bab..ffd0131ac 100644 --- a/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts +++ b/cypress/e2e/tests/migration/task-manager/miscellaneous.test.ts @@ -28,29 +28,31 @@ import { TaskManager } from "../../../models/migration/task-manager/task-manager import { TaskManagerColumns } from "../../../views/taskmanager.view"; import * as commonView from "../../../views/common.view"; -describe(["@tier2"], "Enable Premeption in Task Manager Page", function () { +describe(["@tier2"], "Actions in Task Manager Page", function () { const applicationsList: Analysis[] = []; before("Login", function () { login(); deleteApplicationTableRows(); - cy.fixture("application").then((appData) => { - cy.fixture("analysis").then((analysisData) => { - for (let i = 0; i < 4; i++) { - const bookServerApp = new Analysis( - getRandomApplicationData("TaskFilteringApp1_" + i, { - sourceData: appData["bookserver-app"], - }), - getRandomAnalysisData(analysisData["analysis_for_openSourceLibraries"]) - ); - applicationsList.push(bookServerApp); - } - applicationsList.forEach((application) => application.create()); - }); + }); + + beforeEach("Load data", function () { + cy.fixture("application").then(function (appData) { + this.appData = appData; + }); + cy.fixture("analysis").then(function (analysisData) { + this.analysisData = analysisData; }); }); it("Test Enable and Disable Premeption", function () { + const bookServerApp = new Analysis( + getRandomApplicationData("TaskApp1_", { + sourceData: this.appData["bookserver-app"], + }), + getRandomAnalysisData(this.analysisData["analysis_for_openSourceLibraries"]) + ); + bookServerApp.create(); TaskManager.setPreemption(true); checkSuccessAlert(commonView.infoAlertMessage, "Update request submitted."); validateTextPresence(TaskManagerColumns.preemption, "true"); @@ -58,4 +60,22 @@ describe(["@tier2"], "Enable Premeption in Task Manager Page", function () { checkSuccessAlert(commonView.infoAlertMessage, "Update request submitted."); validateTextPresence(TaskManagerColumns.preemption, "false"); }); + + it("Cancel Task", function () { + const bookServerApp = new Analysis( + getRandomApplicationData("TaskApp1_", { + sourceData: this.appData["bookserver-app"], + }), + getRandomAnalysisData(this.analysisData["analysis_for_openSourceLibraries"]) + ); + bookServerApp.create(); + TaskManager.cancelTask("Pending"); + checkSuccessAlert(commonView.infoAlertMessage, "Cancelation request submitted"); + validateTextPresence(TaskManagerColumns.status, "Canceled"); + TaskManager.cancelTask("Running"); + checkSuccessAlert(commonView.infoAlertMessage, "Cancelation request submitted"); + validateTextPresence(TaskManagerColumns.status, "Canceled"); + // Succeeded tasks cannot be cancelled. + TaskManager.cancelTask("Succeeded"); + }); });