| /** | 
|  * @file        ADSO-9550 | 
|  * @description Create quantity-based unit and verify able to edit max capacity via Capacities view | 
|  * @author      Chan Clarence (ccn7@3ds.com) | 
|  * @copyright   Dassault Systemes | 
|  */ | 
| import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const'; | 
| import { AppMP, Demo, Scenario } from '../../libmp/appmp'; | 
| import { DataUnitCapacityType, DataUnitQuantityCapacityInfo } from '../../libmp/data/data.unit'; | 
| import { DataFoodBaseEntityName } from '../../libmp/data/data.navigation'; | 
| import { DialogUnit } from '../../libmp/dialogs/dialog.unit'; | 
| import { MatrixEditorTimeCapacitiesContextMenuItem } from '../../libmp/forms/form.timecapacities'; | 
| import { ListEntityContextMenuItem } from '../../libmp/forms/form.unit'; | 
| import { DialogQuantityCapacity } from '../../libmp/dialogs/dialog.quantitycapacity'; | 
| import { startOfPlanningYear } from '../../libmp/data/data.period'; | 
|   | 
| describe('ADSO-9550 - Create quantity-based unit and verify able to edit max capacity via Capacities view', () => { | 
|   const appMP = AppMP.getInstance(); | 
|   let dlgUnit: DialogUnit; | 
|   let dlgQuantityCapacity: DialogQuantityCapacity; | 
|   const listEntity = appMP.viewEntity.formEntity.listEntity; | 
|   const meQuantityCapacities = appMP.viewCapacitiesQuantity.formQuantityCapacities.meQuantityCapacities; | 
|   const europe = DataFoodBaseEntityName.Europe; | 
|   const newUnitName = 'A quantity unit'; | 
|   const capacityDate = `1-Feb-${startOfPlanningYear}`; | 
|   const oldMaxCapacity = '0'; | 
|   const newMaxCapacity = '50'; | 
|   | 
|   beforeAll(async () => { | 
|     jasmine.addMatchers(qCustomMatcher); | 
|     await appMP.login(); | 
|   }); | 
|   | 
|   afterAll(async () => { | 
|     await appMP.viewEntity.reset(); | 
|     await appMP.viewCapacitiesQuantity.reset(); | 
|     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(`Setup - Open view ${appMP.viewEntity.viewPath}.`, async () => { | 
|     await appMP.viewEntity.switchTo(); | 
|   }); | 
|   | 
|   it('Step 1 - In list "Units and Stocking Points", right click and select menu "Create unit".', async () => { | 
|     [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.CreateUnit); | 
|   }); | 
|   | 
|   it(`Step 2 - In dialog, set Parent = "${europe}", Name = "${newUnitName}" and Capacity type = "${DataUnitCapacityType.Quantity}". Click OK to create unit.`, async () => { | 
|     await dlgUnit.updateDialogValues({Parent: europe, Name: newUnitName, CapacityType: DataUnitCapacityType.Quantity}); | 
|     await dlgUnit.clickOK(); | 
|   }); | 
|   | 
|   it(`Step 3 - Verify unit created in list by inspecting Name = "${newUnitName}" and Capacity Type = "${DataUnitCapacityType.Quantity}".`, async () => { | 
|     await listEntity.verifyRowExists({Name: newUnitName, 'Capacity type': DataUnitCapacityType.Quantity}, [{Name: europe}]); | 
|   }); | 
|   | 
|   it(`Step 4 - Open view ${appMP.viewCapacitiesQuantity.viewPath}.`, async () => { | 
|     await appMP.viewCapacitiesQuantity.switchTo(); | 
|   }); | 
|   | 
|   it(`Step 5 - In matrix "Quantity Capacities", right click cell for row = "${newUnitName} > ${DataUnitQuantityCapacityInfo.MaxCapacity}" and column "${capacityDate}". Select menu "Edit".`, async () => { | 
|     [dlgQuantityCapacity] = await meQuantityCapacities.rightClickCellSelectContextmenu(MatrixEditorTimeCapacitiesContextMenuItem.Edit, newUnitName, DataUnitQuantityCapacityInfo.MaxCapacity, capacityDate); | 
|   }); | 
|   | 
|   it(`Step 6 - In dialog, verify ${DataUnitQuantityCapacityInfo.MaxCapacity} = ${oldMaxCapacity}. | 
|       Update to be ${newMaxCapacity} and click OK. Verify matrix cell for ${DataUnitQuantityCapacityInfo.MaxCapacity} updated to ${newMaxCapacity}.`, async () => { | 
|     await dlgQuantityCapacity.verifyDialogValues({MaxCapacity: oldMaxCapacity}); | 
|     await dlgQuantityCapacity.updateDialogValues({MaxCapacity: newMaxCapacity}); | 
|     await dlgQuantityCapacity.clickOK(); | 
|   | 
|     await meQuantityCapacities.verifyCellValue(newUnitName, DataUnitQuantityCapacityInfo.MaxCapacity, capacityDate, newMaxCapacity); | 
|   }); | 
| }); |