/**
|
* @file ADSO-49544 - Activate/Deactive New campaign optimizer
|
* @description Modify advanced setting in strategy - Campaign optimizer combinations
|
* @author Zan Sen (zansen.tai@3ds.com)
|
* @copyright Dassault Systèmes
|
*/
|
|
import { DataKPIName } from '../../libmp/data/data.kpi';
|
import { AppMP, Demo, Scenario } from '../../libmp/appmp';
|
import { DataMetalStrategyName } from '../../libmp/data/data.strategy';
|
import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const';
|
import { ListStrategyContextMenuItem } from '../../libmp/forms/form.optimizerstrategies';
|
import { DialogStrategy, btnOkTooltip, campaignOptimizerTooltip } from '../../libmp/dialogs/dialog.strategy';
|
|
describe('ADSO-49544 - Activate/Deactive New campaign optimizer.', () => {
|
// New dialog strategy instance to use active goal list name in steps
|
let dlgStrategy = new DialogStrategy();
|
const isFullMatch = true;
|
const appMP = AppMP.getInstance();
|
const viewOptimizerStrategies = appMP.viewOptimizerStrategies;
|
const listStrategy = appMP.viewOptimizerStrategies.frmOptimizerStrategies.listStrategy;
|
|
beforeAll(async () => {
|
jasmine.addMatchers(qCustomMatcher);
|
await appMP.login();
|
});
|
|
afterAll(async () => {
|
// Collapse the right docked optimizer strategies
|
await appMP.viewOptimizerStrategies.frmOptimizerStrategies.collapse();
|
await appMP.cleanupAndLogout();
|
});
|
|
afterEach(async () => {
|
await appMP.checkToastMessage();
|
});
|
|
it(`Setup- ${AppMP.getDemoDataPath(Demo.Metals, Scenario.Base)}`, async () => {
|
await appMP.createDemoDataset(Demo.Metals, Scenario.Base, false);
|
});
|
|
it(`Step 1 - Click "${viewOptimizerStrategies.viewPath}" to open right docked form "${viewOptimizerStrategies.name}"`, async () => {
|
await viewOptimizerStrategies.switchTo();
|
});
|
|
it(`Step 2 - Right click strategy "${DataMetalStrategyName.MaximizeEBITDA}" and select menu "${ListStrategyContextMenuItem.Edit.Label}".`, async () => {
|
const selectedRow = await listStrategy.getRow({ Name: DataMetalStrategyName.MaximizeEBITDA });
|
[dlgStrategy] = await listStrategy.selectContextMenu(ListStrategyContextMenuItem.Edit, selectedRow);
|
});
|
|
it(`Step 3 - In list "${dlgStrategy.listActiveGoals.name}", right click "${DataKPIName.Campaign}" and select menu "${ListStrategyContextMenuItem.Edit.Label}". Set Weight = 1 and click OK. Verify Weight updated to 1.`, async () => {
|
await dlgStrategy.listActiveGoals.updateActiveGoalWeight(DataKPIName.Campaign, '1');
|
});
|
|
it('Step 4 - Click "Advanced" tab and verify "Enable campaign sequencing optimizer" toggle off and "Maximum number of elements in campaign combi" is disabled and equals 4.', async () => {
|
await dlgStrategy.panelAdvanced.clickTab();
|
await dlgStrategy.verifyDialogValues({ EnableCampaignOptimizer: 'false', MaxNrOfElementsInCampaignCombi: '4' });
|
await dlgStrategy.verifyDialogEnabled({ MaxNrOfElementsInCampaignCombi: 'false' });
|
});
|
|
it(`Step 5 - Hover "Enable campaign sequencing optimizer" and verify tooltip = "${campaignOptimizerTooltip.checkBox_enableCampaignOptimizer}".`, async () => {
|
await dlgStrategy.hoverElementVerifyTooltip({ EnableCampaignOptimizer: campaignOptimizerTooltip.checkBox_enableCampaignOptimizer });
|
});
|
|
it(`Step 6 - Hover "Maximum number of elements in campaign combi" and verify tooltip = "${campaignOptimizerTooltip.editField_maxNrOfElementsInCampaignCombi}".`, async () => {
|
await dlgStrategy.hoverElementVerifyTooltip({ MaxNrOfElementsInCampaignCombi: campaignOptimizerTooltip.editField_maxNrOfElementsInCampaignCombi });
|
});
|
|
it('Step 7 - Toggle on "Enable campaign sequencing optimizer" and verify "Maximum number of elements in campaign combi" enabled and defaulted to 4.', async () => {
|
await dlgStrategy.updateDialogValues({ EnableCampaignOptimizer: 'true' });
|
await dlgStrategy.verifyDialogEnabled({ MaxNrOfElementsInCampaignCombi: 'true' });
|
await dlgStrategy.verifyDialogValues({ MaxNrOfElementsInCampaignCombi: '4' });
|
});
|
|
it(`Step 8 - Set "Maximum number of elements in campaign combi" = -1 and verify OK disabled with precondition = "${btnOkTooltip.maxNrOfElementsInCampaignCombi_isNumberNegative('-1')}".`, async () => {
|
await dlgStrategy.updateDialogValues({ MaxNrOfElementsInCampaignCombi: '-1' });
|
await dlgStrategy.verifyOKDisabled(btnOkTooltip.maxNrOfElementsInCampaignCombi_isNumberNegative('-1'), isFullMatch);
|
});
|
|
it(`Step 9 - Set "Maximum number of elements in campaign combi" = 1.5 and verify OK disabled with precondition = "${btnOkTooltip.maxNrOfElementsInCampaignCombi_isInputInvalid()}".`, async () => {
|
await dlgStrategy.updateDialogValues({ MaxNrOfElementsInCampaignCombi: '1.5' });
|
await dlgStrategy.verifyOKDisabled(btnOkTooltip.maxNrOfElementsInCampaignCombi_isInputInvalid(), isFullMatch);
|
});
|
|
it('Step 10 - Set "Maximum number of elements in campaign combi" = 5 and verify OK enabled. Click OK to save.', async () => {
|
await dlgStrategy.updateDialogValues({ MaxNrOfElementsInCampaignCombi: '5' });
|
await dlgStrategy.verifyOKEnabled();
|
await dlgStrategy.clickOK();
|
});
|
|
it('Step 11 - Edit the strategy again. In dialog, verify Campaign Weight = 1.', async () => {
|
const selectedRow = await listStrategy.getRow({ Name: DataMetalStrategyName.MaximizeEBITDA });
|
[dlgStrategy] = await listStrategy.selectContextMenu(ListStrategyContextMenuItem.Edit, selectedRow);
|
const selectedActiveGoal = await dlgStrategy.listActiveGoals.getRow({ KPI: DataKPIName.Campaign });
|
await dlgStrategy.listActiveGoals.verifyRowValues(selectedActiveGoal, { Weight: '1' });
|
});
|
|
it('Step 12 - Click "Advanced" tab. Verify "Enable campaign sequencing optimizer" toggle on and "Maximum number of elements in campaign combi" = 5.', async () => {
|
await dlgStrategy.panelAdvanced.clickTab();
|
await dlgStrategy.verifyDialogValues({ EnableCampaignOptimizer: 'true', MaxNrOfElementsInCampaignCombi: '5' });
|
});
|
|
it('Step 13 - Toggle off "Enable campaign sequencing optimizer" and verify "Maximum number of elements in campaign combi" is disabled. Click OK.', async () => {
|
await dlgStrategy.updateDialogValues({ EnableCampaignOptimizer: 'false' });
|
await dlgStrategy.verifyDialogEnabled({ MaxNrOfElementsInCampaignCombi: 'false' });
|
await dlgStrategy.clickOK();
|
});
|
|
it(`Step 14 - Edit "${DataMetalStrategyName.MaximizeEBITDA}" again.`, async () => {
|
const selectedRow = await listStrategy.getRow({ Name: DataMetalStrategyName.MaximizeEBITDA });
|
[dlgStrategy] = await listStrategy.selectContextMenu(ListStrategyContextMenuItem.Edit, selectedRow);
|
});
|
|
it('Step 15 - Click "Advanced" tab. Verify "Enable campaign sequencing optimizer" is unchecked and "Maximum number of elements in campaign combi" = 4 has been disabled. Click Cancel.', async () => {
|
await dlgStrategy.panelAdvanced.clickTab();
|
await dlgStrategy.verifyDialogEnabled({ MaxNrOfElementsInCampaignCombi: 'false' });
|
await dlgStrategy.verifyDialogValues({ EnableCampaignOptimizer: 'false', MaxNrOfElementsInCampaignCombi: '4' });
|
await dlgStrategy.clickCancel();
|
});
|
});
|