/**
|
* @file ADSO-11482
|
* @description Copy product assignments at optimizer puzzle copy
|
* @author Pethaperumal Natarajan (Pethaperumal.NATARAJAN.intern@3ds.com)
|
* @copyright Dassault Systèmes
|
*/
|
|
import { AppMP, Demo, Scenario } from '../../libmp/appmp';
|
import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const';
|
import { StepActionBarScenarioSelection } from '../../libmp/actionbarpages/abp.scenarioselection';
|
import { DialogOptimizerPuzzles, DialogOptimizerPuzzlesField, ListManageContents, ListManageContentsColumn, ListManageContentsProduct, ListManageContentsProductContextMenuItems, PanelManageContents } from '../../libmp/dialogs/optimizerpuzzles';
|
import { StepList } from '../../libappsop/listsop';
|
import { StepDialog } from '../../libappsop/dialogsop';
|
import { ListOptimizerPuzzles, ListOptimizerPuzzlesColumn, ListOptimizerPuzzlesContextMenuItem, ListOptimizerPuzzlesOnDrawImage } from '../../libmp/forms/form.optimizerpuzzles';
|
import { dataFoodProducts, dataFoodProductsProvider } from '../../libmp/data/data.product';
|
import { DataOptimizerPuzzleManageContent } from '../../libmp/data/data.optimizerpuzzle';
|
|
describe('ADSO-11482 - Copy product assignments at optimizer puzzle copy', () => {
|
const appMP = AppMP.getInstance();
|
const abpScenarioSelection = appMP.abpScenarioSelection;
|
const listOptimizerPuzzles = appMP.abpScenarioSelection.formOptimizerPuzzles.listOptimizerPuzzles;
|
let dlgOptimizerPuzzles: DialogOptimizerPuzzles;
|
let listManageContents: ListManageContents;
|
let listManageContentsProducts: ListManageContentsProduct;
|
|
const inputPuzzle: DialogOptimizerPuzzlesField = { Name: 'My Puzzle', Description: 'My Description' };
|
const rowListManageContentsProduct: ListManageContentsColumn = { Name: DataOptimizerPuzzleManageContent.Products };
|
|
const rowMyPuzzle: ListOptimizerPuzzlesColumn = { Name: 'My Puzzle', Description: 'My Description' };
|
const imageRedCross = ListOptimizerPuzzlesOnDrawImage.FullyExcluded;
|
const imageGrayCheck = ListOptimizerPuzzlesOnDrawImage.PartiallyIncluded;
|
const imageGreenCheck = ListOptimizerPuzzlesOnDrawImage.FullyIncluded;
|
const imageDots = ListOptimizerPuzzlesOnDrawImage.MixIncludedExcluded;
|
|
beforeAll(async () => {
|
jasmine.addMatchers(qCustomMatcher);
|
await appMP.login();
|
});
|
|
afterAll(async () => {
|
await appMP.cleanupAndLogout();
|
});
|
|
afterEach(async () => {
|
await appMP.checkToastMessage();
|
});
|
|
it(`Step 1 - ${AppMP.getDemoDataPath(Demo.Food, Scenario.Base)}`, async () => {
|
await appMP.createDemoDataset(Demo.Food, Scenario.Base, true); // Need wait optimizer finish to enable the Optimizer button else we cannot click to show opt puzzle form
|
});
|
|
it(`Step 2 - ${StepActionBarScenarioSelection.toggleOptimizerPuzzles(true)}`, async () => {
|
await abpScenarioSelection.toggleOptimizerPuzzles(true);
|
});
|
|
it(`Step 3 - ${StepList.rightClickSelectMenu(ListOptimizerPuzzles.title, ListOptimizerPuzzlesContextMenuItem.Create.Label)}`, async () => {
|
[dlgOptimizerPuzzles] = await listOptimizerPuzzles.selectContextMenu(ListOptimizerPuzzlesContextMenuItem.Create);
|
});
|
|
it(`Step 4 - ${StepDialog.updateDialogValues(DialogOptimizerPuzzles.title, inputPuzzle)}`, async () => {
|
await dlgOptimizerPuzzles.updateDialogValues(inputPuzzle);
|
});
|
|
it(`Step 5 - ${StepDialog.clickTab(PanelManageContents.title)} ${StepList.selectRow(ListManageContents.title, rowListManageContentsProduct)}`, async () => {
|
await dlgOptimizerPuzzles.panelManageContents.switchTo();
|
listManageContents = dlgOptimizerPuzzles.panelManageContents.listManageContents;
|
await listManageContents.selectRow(rowListManageContentsProduct);
|
});
|
|
it(`Step 6 - ${StepList.selectRowAndClickMenu(ListManageContentsProduct.title, { Name: dataFoodProducts.Greek.Name }, ListManageContentsProductContextMenuItems.Exclude.Label)} ${StepList.verifyRowHasOnDrawImage(ListManageContentsProduct.title, { Name: dataFoodProducts.Greek.Name }, imageRedCross)}`, async () => {
|
listManageContentsProducts = dlgOptimizerPuzzles.panelManageContents.listManageContentsProduct;
|
const row = await listManageContentsProducts.getRow([dataFoodProductsProvider, dataFoodProducts.Greek]);
|
await listManageContentsProducts.selectContextMenu(ListManageContentsProductContextMenuItems.Exclude, row);
|
await listManageContentsProducts.verifyRowHasOnDrawImage(row, imageRedCross);
|
});
|
|
it(`Step 7 - ${StepList.verifyRowHasOnDrawImage(ListManageContentsProduct.title, { Name: dataFoodProducts.AllProducts.Name }, imageGrayCheck)}`, async () => {
|
const row = await listManageContentsProducts.getRow([dataFoodProductsProvider, dataFoodProducts.AllProducts]);
|
await listManageContentsProducts.verifyRowHasOnDrawImage(row, imageGrayCheck);
|
});
|
|
it(`Step 8 - ${StepList.verifyRowHasOnDrawImage(ListManageContentsProduct.title, { Name: dataFoodProducts.FinishedGoods.Name }, imageGrayCheck)}`, async () => {
|
const row = await listManageContentsProducts.getRow([dataFoodProductsProvider, dataFoodProducts.FinishedGoods]);
|
await listManageContentsProducts.verifyRowHasOnDrawImage(row, imageGrayCheck);
|
await row.collapseRow(); // Collapse to have bigger screen space to prevent error moving up/down in list
|
});
|
|
it(`Step 9 - ${StepList.selectRowAndClickMenu(ListManageContentsProduct.title, { Name: dataFoodProducts.Strawberry.Name }, ListManageContentsProductContextMenuItems.Exclude.Label)} ${StepList.verifyRowHasOnDrawImage(ListManageContentsProduct.title, { Name: dataFoodProducts.Strawberry.Name }, imageRedCross)}`, async () => {
|
const row = await listManageContentsProducts.getRow([dataFoodProductsProvider, dataFoodProducts.Strawberry]);
|
await listManageContentsProducts.selectContextMenu(ListManageContentsProductContextMenuItems.Exclude, row);
|
await listManageContentsProducts.verifyRowHasOnDrawImage(row, imageRedCross);
|
});
|
|
it(`Step 10 - ${StepList.verifyRowHasOnDrawImage(ListManageContentsProduct.title, { Name: dataFoodProducts.RawMaterials.Name }, imageGrayCheck)}`, async () => {
|
const row = await listManageContentsProducts.getRow([dataFoodProductsProvider, dataFoodProducts.RawMaterials]);
|
await listManageContentsProducts.verifyRowHasOnDrawImage(row, imageGrayCheck);
|
});
|
|
it(`Step 11 - ${StepList.verifyRowHasOnDrawImage(ListManageContentsProduct.title, { Name: dataFoodProducts.Flavoring.Name }, imageGrayCheck)}`, async () => {
|
const row = await listManageContentsProducts.getRow([dataFoodProductsProvider, dataFoodProducts.Flavoring]);
|
await listManageContentsProducts.verifyRowHasOnDrawImage(row, imageGrayCheck);
|
});
|
|
it(`Step 12 - ${StepList.verifyRowHasOnDrawImage(ListManageContentsProduct.title, { Name: dataFoodProducts.Vanilla.Name }, imageGreenCheck)}`, async () => {
|
const row = await listManageContentsProducts.getRow([dataFoodProductsProvider, dataFoodProducts.Vanilla]);
|
await listManageContentsProducts.verifyRowHasOnDrawImage(row, imageGreenCheck);
|
});
|
|
it(`Step 13 - ${StepList.verifyRowHasOnDrawImage(ListManageContents.title, rowListManageContentsProduct, imageDots)}`, async () => {
|
const row = await listManageContents.getRow(rowListManageContentsProduct);
|
await listManageContents.verifyRowHasOnDrawImage(row, imageDots);
|
});
|
|
it(`Step 14 - ${StepDialog.clickOK()}`, async () => {
|
await dlgOptimizerPuzzles.clickOK();
|
});
|
|
it(`Step 15 - ${StepList.selectRowAndClickMenu(ListOptimizerPuzzles.title, rowMyPuzzle, ListOptimizerPuzzlesContextMenuItem.Copy.Label)}`, async () => {
|
const row = await listOptimizerPuzzles.getRow(rowMyPuzzle);
|
await listOptimizerPuzzles.selectContextMenu(ListOptimizerPuzzlesContextMenuItem.Copy, row);
|
});
|
|
it(`Step 16 - ${StepDialog.clickTab(PanelManageContents.title)} ${StepList.selectRow(ListManageContents.title, rowListManageContentsProduct)}`, async () => {
|
await dlgOptimizerPuzzles.panelManageContents.switchTo();
|
await listManageContents.selectRow(rowListManageContentsProduct);
|
});
|
|
it(`Step 17 - ${StepList.verifyRowHasOnDrawImage(ListManageContentsProduct.title, { Name: dataFoodProducts.Greek.Name }, imageRedCross)}`, async () => {
|
const row = await listManageContentsProducts.getRow([dataFoodProductsProvider, dataFoodProducts.Greek]);
|
await listManageContentsProducts.verifyRowHasOnDrawImage(row, imageRedCross);
|
});
|
|
it(`Step 18 - ${StepList.verifyRowHasOnDrawImage(ListManageContentsProduct.title, { Name: dataFoodProducts.Strawberry.Name }, imageRedCross)}`, async () => {
|
const row = await listManageContentsProducts.getRow([dataFoodProductsProvider, dataFoodProducts.Strawberry]);
|
await listManageContentsProducts.verifyRowHasOnDrawImage(row, imageRedCross);
|
});
|
|
it(`Step 19 - ${StepDialog.clickCancel()}`, async () => {
|
await dlgOptimizerPuzzles.clickCancel();
|
});
|
});
|