| /** | 
|  * @file        ADSO-50615 | 
|  * @description Toggle shift optimization on off on units | 
|  * @author      Chan Clarence (ccn7@3ds.com) | 
|  * @copyright   Dassault Systemes | 
|  */ | 
| import { AppMP, Demo, Scenario } from '../../libmp/appmp'; | 
| import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const'; | 
| import { ListRow } from '../../e2elib/lib/src/pageobjects/list/listrow.component'; | 
| import { StepDialog } from '../../libappsop/dialogsop'; | 
| import { StepList } from '../../libappsop/listsop'; | 
| import { DataMetalBaseEntityName, dataMetalsUnits, DataUnitCapacityType } from '../../libmp/data/data.unit'; | 
| import { DialogUnit } from '../../libmp/dialogs/dialog.unit'; | 
| import { ListEntity, ListEntityContextMenuItem } from '../../libmp/forms/form.unit'; | 
|   | 
| describe('ADSO-50615 - Toggle shift optimization on off on units', () => { | 
|   const appMP = AppMP.getInstance(); | 
|   const listEntity = appMP.viewEntity.formEntity.listEntity; | 
|   const recyclingFurnaceQiYing = dataMetalsUnits.RecyclingFurnaceQiYing.Name; | 
|   let dlgUnit: DialogUnit; | 
|   | 
|   beforeAll(async () => { | 
|     jasmine.addMatchers(qCustomMatcher); | 
|     await appMP.login(); | 
|   }); | 
|   | 
|   afterAll(async () => { | 
|     await appMP.resetActiveView(appMP.viewEntity); | 
|     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(`Setup - Open view ${appMP.viewEntity.viewPath}.`, async () => { | 
|     await appMP.viewEntity.switchTo(); | 
|   }); | 
|   | 
|   it(`Step 1 - ${StepList.rightClickSelectMenu(ListEntity.title, ListEntityContextMenuItem.CreateUnit.Label)} ${StepDialog.updateDialogValues(DialogUnit.title, {CapacityType: DataUnitCapacityType.Time})}`, async () => { | 
|     [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.CreateUnit); | 
|     await dlgUnit.updateDialogValues({CapacityType: DataUnitCapacityType.Time}); | 
|   }); | 
|   | 
|   it(`Step 2 - ${StepDialog.clickTab('Advanced')}`, async () => { | 
|     await dlgUnit.pnlAdvanced.clickTab(); | 
|   }); | 
|   | 
|   it(`Step 3 - ${StepDialog.verifyDialogUIVisible(DialogUnit.title, {BatchEditShiftPatternOpt: 'false'})} | 
|       ${StepDialog.verifyDialogEnabled(DialogUnit.title, {ShiftPatternOpt: 'true'})} | 
|       ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'false'})}`, async () => { | 
|     await dlgUnit.verifyDialogUIVisible({BatchEditShiftPatternOpt: 'false'}); | 
|     await dlgUnit.verifyDialogEnabled({ShiftPatternOpt: 'true'}); | 
|     await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'false'}); | 
|   }); | 
|   | 
|   it(`Step 4 - ${StepDialog.clickTab('General')} ${StepDialog.updateDialogValues(DialogUnit.title, {CapacityType: DataUnitCapacityType.TimeAggregation})}`, async () => { | 
|     await dlgUnit.pnlGeneral.clickTab(); | 
|     await dlgUnit.updateDialogValues({CapacityType: DataUnitCapacityType.TimeAggregation}); | 
|   }); | 
|   | 
|   it(`Step 5 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogUIVisible(DialogUnit.title, {BatchEditShiftPatternOpt: 'false'})} | 
|       ${StepDialog.verifyDialogEnabled(DialogUnit.title, {ShiftPatternOpt: 'true'})} | 
|       ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'false'})}`, async () => { | 
|     await dlgUnit.pnlAdvanced.clickTab(); | 
|     await dlgUnit.verifyDialogUIVisible({BatchEditShiftPatternOpt: 'false'}); | 
|     await dlgUnit.verifyDialogEnabled({ShiftPatternOpt: 'true'}); | 
|     await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'false'}); | 
|   }); | 
|   | 
|   it(`Step 6 - ${StepDialog.clickTab('General')} ${StepDialog.updateDialogValues(DialogUnit.title, {CapacityType: DataUnitCapacityType.Quantity})}`, async () => { | 
|     await dlgUnit.pnlGeneral.clickTab(); | 
|     await dlgUnit.updateDialogValues({CapacityType: DataUnitCapacityType.Quantity}); | 
|   }); | 
|   | 
|   it(`Step 7 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogUIVisible(DialogUnit.title, {BatchEditShiftPatternOpt: 'false'})} | 
|       ${StepDialog.verifyDialogEnabled(DialogUnit.title, {ShiftPatternOpt: 'false'})} | 
|       ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'false'})}`, async () => { | 
|     await dlgUnit.pnlAdvanced.clickTab(); | 
|     await dlgUnit.verifyDialogUIVisible({BatchEditShiftPatternOpt: 'false'}); | 
|     await dlgUnit.verifyDialogEnabled({ShiftPatternOpt: 'false'}); | 
|     await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'false'}); | 
|   }); | 
|   | 
|   it(`Step 8 - ${StepDialog.clickCancel()}`, async () => { | 
|     await dlgUnit.clickCancel(); | 
|   }); | 
|   | 
|   it(`Step 9 - ${StepList.selectRowsAndClickMenu(ListEntity.title, [{Name: recyclingFurnaceQiYing}, {Name: DataMetalBaseEntityName.SupplierUBCScrapAsia}], ListEntityContextMenuItem.Edit.Label)}`, async () => { | 
|     const row1 = await listEntity.getRow({Name: recyclingFurnaceQiYing}, | 
|                                          [{Name: DataMetalBaseEntityName.QAluminum}, {Name: DataMetalBaseEntityName.Asia}, {Name: DataMetalBaseEntityName.QiYing}, {Name: DataMetalBaseEntityName.Casthouse}]); | 
|     const row2 = await listEntity.getRow({Name: DataMetalBaseEntityName.SupplierUBCScrapAsia}, [{Name: DataMetalBaseEntityName.QAluminum}, {Name: DataMetalBaseEntityName.Asia}]); | 
|     const rows: ListRow[] = [row1, row2]; | 
|   | 
|     await listEntity.selectRows(rows); | 
|   | 
|     [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.Edit, rows); | 
|   }); | 
|   | 
|   it(`Step 10 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogUIVisible(DialogUnit.title, {BatchEditShiftPatternOpt: 'true'})} | 
|       ${StepDialog.verifyDialogEnabled(DialogUnit.title, {BatchEditShiftPatternOpt: 'false', ShiftPatternOpt: 'false'})}`, async () => { | 
|     await dlgUnit.pnlAdvanced.clickTab(); | 
|     await dlgUnit.verifyDialogUIVisible({BatchEditShiftPatternOpt: 'true'}); | 
|     await dlgUnit.verifyDialogEnabled({BatchEditShiftPatternOpt: 'false', ShiftPatternOpt: 'false'}); | 
|   }); | 
|   | 
|   it(`Step 11 - ${StepDialog.clickCancel()}`, async () => { | 
|     await dlgUnit.clickCancel(); | 
|   }); | 
|   | 
|   it(`Step 12 - ${StepList.selectRowsAndClickMenu(ListEntity.title, [{Name: recyclingFurnaceQiYing}, {Name: DataMetalBaseEntityName.CasterQiYing}], ListEntityContextMenuItem.Edit.Label)}`, async () => { | 
|     const rows = await listEntity.getRows([{Name: recyclingFurnaceQiYing}, {Name: DataMetalBaseEntityName.CasterQiYing}], | 
|                                           [{Name: DataMetalBaseEntityName.QAluminum}, {Name: DataMetalBaseEntityName.Asia}, {Name: DataMetalBaseEntityName.QiYing}, {Name: DataMetalBaseEntityName.Casthouse}]); | 
|     await listEntity.selectRows(rows); | 
|     [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.Edit, rows); | 
|   }); | 
|   | 
|   it(`Step 13 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogUIVisible(DialogUnit.title, {BatchEditShiftPatternOpt: 'true'})} | 
|       ${StepDialog.verifyDialogEnabled(DialogUnit.title, {BatchEditShiftPatternOpt: 'true', ShiftPatternOpt: 'false'})} | 
|       ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'false'})}`, async () => { | 
|     await dlgUnit.pnlAdvanced.clickTab(); | 
|     await dlgUnit.verifyDialogUIVisible({BatchEditShiftPatternOpt: 'true'}); | 
|     await dlgUnit.verifyDialogEnabled({BatchEditShiftPatternOpt: 'true', ShiftPatternOpt: 'false'}); | 
|     await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'false'}); | 
|   }); | 
|   | 
|   it(`Step 14 - ${StepDialog.updateDialogValues(DialogUnit.title, {BatchEditShiftPatternOpt: 'true'})} | 
|       ${StepDialog.verifyDialogEnabled(DialogUnit.title, {ShiftPatternOpt: 'true'})} | 
|       ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'false'})}`, async () => { | 
|     await dlgUnit.updateDialogValues({BatchEditShiftPatternOpt: 'true'}); | 
|     await dlgUnit.verifyDialogEnabled({ShiftPatternOpt: 'true'}); | 
|     await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'false'}); | 
|   }); | 
|   | 
|   it(`Step 15 - ${StepDialog.updateDialogValues(DialogUnit.title, {ShiftPatternOpt: 'true'})}`, async () => { | 
|     await dlgUnit.updateDialogValues({ShiftPatternOpt: 'true'}); | 
|   }); | 
|   | 
|   it(`Step 16 - ${StepDialog.clickOK()}`, async () => { | 
|     await dlgUnit.clickOK(); | 
|   }); | 
|   | 
|   it(`Step 17 - ${StepList.selectRowAndClickMenu(ListEntity.title, {Name: recyclingFurnaceQiYing}, ListEntityContextMenuItem.Edit.Label)}`, async () => { | 
|     const row = await listEntity.getRow({Name: recyclingFurnaceQiYing}, | 
|                                         [{Name: DataMetalBaseEntityName.QAluminum}, {Name: DataMetalBaseEntityName.Asia}, {Name: DataMetalBaseEntityName.QiYing}, {Name: DataMetalBaseEntityName.Casthouse}]); | 
|     [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.Edit, row); | 
|   }); | 
|   | 
|   it(`Step 18 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'true'})} ${StepDialog.clickCancel()}`, async () => { | 
|     await dlgUnit.pnlAdvanced.clickTab(); | 
|     await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'true'}); | 
|     await dlgUnit.clickCancel(); | 
|   }); | 
|   | 
|   it(`Step 19 - ${StepList.selectRowAndClickMenu(ListEntity.title, {Name: DataMetalBaseEntityName.CasterQiYing}, ListEntityContextMenuItem.Edit.Label)}`, async () => { | 
|     const row = await listEntity.getRow({Name: DataMetalBaseEntityName.CasterQiYing}, [{Name: DataMetalBaseEntityName.QAluminum}, {Name: DataMetalBaseEntityName.Asia}, {Name: DataMetalBaseEntityName.QiYing}, {Name: DataMetalBaseEntityName.Casthouse}]); | 
|     [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.Edit, row); | 
|   }); | 
|   | 
|   it(`Step 20 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'true'})} ${StepDialog.clickCancel()}`, async () => { | 
|     await dlgUnit.pnlAdvanced.clickTab(); | 
|     await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'true'}); | 
|     await dlgUnit.clickCancel(); | 
|   }); | 
| }); |