/**
|
* @file ADSO-9497
|
* @description Copy strategy in Optimizer strategies view
|
* @author Mehrab Kamrani (mehrab.hassan@3ds.com)
|
* @copyright Dassault Systèmes
|
*/
|
import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const';
|
import { AppMP, Demo, Scenario } from '../../libmp/appmp';
|
import { DataFoodStrategyName } from '../../libmp/data/data.strategy';
|
import { ListStrategyContextMenuItem } from '../../libmp/forms/form.optimizerstrategies';
|
|
describe('ADSO-9497 - Copy a strategy via context menu in strategy list and action bar Copy button', () => {
|
const appMP = AppMP.getInstance();
|
const listStrategy = appMP.viewOptimizerStrategies.frmOptimizerStrategies.listStrategy;
|
|
beforeAll(async () => {
|
jasmine.addMatchers(qCustomMatcher);
|
await appMP.login();
|
});
|
|
afterAll(async () => {
|
await appMP.cleanupAndLogout();
|
});
|
|
afterEach(async () => {
|
await appMP.checkToastMessage();
|
});
|
|
it(`Setup - ${AppMP.getDemoDataPath(Demo.Food, Scenario.Base)}`, async () => {
|
await appMP.createDemoDataset(Demo.Food, Scenario.Base, false);
|
});
|
|
it(`Step 1 - Open view ${appMP.viewOptimizerStrategies.viewPath} and via context menu on Strategies list copy a strategy`, async () => {
|
await appMP.viewOptimizerStrategies.switchTo();
|
|
const originalStrategyName = DataFoodStrategyName.Default;
|
|
// Edit the default strategy and remember the active goals
|
const originalStrategyRow = await listStrategy.getRow({Name: originalStrategyName});
|
let [strategyDialog] = await listStrategy.selectContextMenu(ListStrategyContextMenuItem.Edit, originalStrategyRow);
|
const originalStrategyActiveGoals = await strategyDialog.listActiveGoals.getActiveGoals();
|
await strategyDialog.clickCancel();
|
|
// Copy strategy via context menu
|
await listStrategy.selectContextMenu(ListStrategyContextMenuItem.Copy, originalStrategyRow);
|
|
// Validate that a copy of the original strategy is made and has a different name
|
const copiedStrategyName = listStrategy.getCopiedStrategyName(originalStrategyName);
|
await listStrategy.verifyRowExists({Name: copiedStrategyName});
|
|
// Remember active goals for copied strategy
|
const copiedStrategyRow = await listStrategy.getRow({Name: copiedStrategyName});
|
[strategyDialog] = await listStrategy.selectContextMenu(ListStrategyContextMenuItem.Edit, copiedStrategyRow);
|
const copiedStrategyActiveGoals = await strategyDialog.listActiveGoals.getActiveGoals();
|
await strategyDialog.clickCancel();
|
|
// Verify both original and copied scenarios has same Active Goal
|
const isBothIdentical = JSON.stringify(originalStrategyActiveGoals) === JSON.stringify(copiedStrategyActiveGoals);
|
expect(isBothIdentical).toBe(true, 'Both original and copied scenario should have same active goals');
|
});
|
|
it('Step 2 - Select 2 optimizer strategies. Verify Copy context menu and action bar button disabled as batch copy not supported.', async () => {
|
// select multiple rows
|
const rows = [await listStrategy.getRowByIndex(0), await listStrategy.getRowByIndex(1)];
|
|
// verify Copy context menu is disabled
|
await listStrategy.verifyContextMenuDisabled(ListStrategyContextMenuItem.Copy, rows, 'Expecting Copy menu to be disabled as not supporting batch copy optimizer strategies.');
|
|
// Verify Copy button in scenario action bar page is disabled
|
expect(await appMP.abpScenario.btnCopy.isDisabled()).toBe(true, 'Expecting Copy button to be disabled as not supporting batch copy optimizer strategies.');
|
});
|
|
it('Step 3 - Repeat test using action bar Copy button', async () => {
|
// Get "Default - Changeovers" strategy
|
const originalStrategyName = DataFoodStrategyName.DefaultChangeovers;
|
const originalStrategyRow = await listStrategy.selectRow({Name: originalStrategyName});
|
|
// Remember active goals of original strategy
|
let [strategyDialog] = await listStrategy.selectContextMenu(ListStrategyContextMenuItem.Edit, originalStrategyRow);
|
const originalStrategyActiveGoals = await strategyDialog.listActiveGoals.getActiveGoals();
|
await strategyDialog.clickCancel();
|
|
// Copy strategy via copy button in action bar page
|
await listStrategy.clickActionButton(appMP.abpScenario.btnCopy);
|
|
// Validate that a copy of the original strategy is made and has a different name
|
const copiedStrategyName = listStrategy.getCopiedStrategyName(originalStrategyName);
|
await listStrategy.verifyRowExists({Name: copiedStrategyName});
|
|
// Remember active goals for copied strategy
|
const copiedStrategyRow = await listStrategy.getRow({Name: copiedStrategyName});
|
[strategyDialog] = await listStrategy.selectContextMenu(ListStrategyContextMenuItem.Edit, copiedStrategyRow);
|
const copiedStrategyActiveGoals = await strategyDialog.listActiveGoals.getActiveGoals();
|
await strategyDialog.clickCancel();
|
|
// Verify both original and copied scenarios has same Active Goal
|
const isBothIdentical = JSON.stringify(originalStrategyActiveGoals) === JSON.stringify(copiedStrategyActiveGoals);
|
expect(isBothIdentical).toBe(true, 'Both original and copied scenario should have same active goals');
|
});
|
});
|