| /** | 
|  * @file        ADSO-9925 | 
|  * @description Manually create and edit trip feedback | 
|  * @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 { ListTripFeedback, ListTripFeedbackColumn, ListTripFeedbackContextMenuItem } from '../../libmp/forms/form.tripfeedback'; | 
| import { DialogTripFeedback, DialogTripFeedbackFields } from '../../libmp/dialogs/dialog.tripfeedback'; | 
| import { StepList } from '../../libappsop/listsop'; | 
| import { StepDialog } from '../../libappsop/dialogsop'; | 
| import { startOfPlanningYear } from '../../libmp/data/data.period'; | 
| import { StepButton } from '../../libappsop/buttonsop'; | 
| import { dataFoodUnits, dataFoodUnitsProvider } from '../../libmp/data/data.unit'; | 
| import { dataFoodProducts } from '../../libmp/data/data.product'; | 
| import { DataFoodBaseLaneLeg } from '../../libmp/data/data.lane'; | 
| import { StepNavigationPanel } from '../../libmp/forms/navigationpanel/form.navigationpanel'; | 
| import { StepDropDownList } from '../../libappsop/dropdownlistsop'; | 
|   | 
| describe('ADSO-9925 - Manually create and edit trip feedback', () => { | 
|   const appMP = AppMP.getInstance(); | 
|   const listTripFeedback = appMP.viewFeedback.formTripFeedback.listTripFeedback; | 
|   const abpPlan = appMP.abpPlan; | 
|   const listEntity = appMP.formNavigation.listEntity; | 
|   const deTruckFleet = dataFoodUnits.DETruckFleet.Name; | 
|   let dlgTripFeedback: DialogTripFeedback; | 
|   | 
|   const laneLegDropDownListOptions = [DataFoodBaseLaneLeg.DEWarehouseToDCAustria, DataFoodBaseLaneLeg.DEWarehouseToDCGermany]; | 
|   | 
|   const inputTripFeedback1: DialogTripFeedbackFields = { | 
|     LaneLeg: DataFoodBaseLaneLeg.DEWarehouseToDCAustria, | 
|     ArrivalDateTime: `1-Apr-${startOfPlanningYear}`, | 
|     Product: dataFoodProducts.GreekBlueberry12pk.Name, | 
|     Quantity: '500', | 
|     Description: 'Description 1', | 
|   }; | 
|   | 
|   const rowTripFeedback1: ListTripFeedbackColumn = { | 
|     Unit: deTruckFleet, | 
|     'Lane Leg': DataFoodBaseLaneLeg.DEWarehouseToDCAustria, | 
|     Arrival: `1-Apr-${startOfPlanningYear}`, | 
|     Product: dataFoodProducts.GreekBlueberry12pk.Name, | 
|     Quantity: '500', | 
|     Description: 'Description 1', | 
|   }; | 
|   | 
|   const inputTripFeedback2: DialogTripFeedbackFields = { | 
|     LaneLeg: DataFoodBaseLaneLeg.DEWarehouseToDCGermany, | 
|     ArrivalDateTime: `5-Apr-${startOfPlanningYear}`, | 
|     Product: dataFoodProducts.GreekBlueberry6pk.Name, | 
|     Quantity: '600', | 
|     Description: 'Description 2', | 
|   }; | 
|   | 
|   const rowTripFeedback2: ListTripFeedbackColumn = { | 
|     Unit: deTruckFleet, | 
|     'Lane Leg': DataFoodBaseLaneLeg.DEWarehouseToDCGermany, | 
|     Arrival: `5-Apr-${startOfPlanningYear}`, | 
|     Product: dataFoodProducts.GreekBlueberry6pk.Name, | 
|     Quantity: '600', | 
|     Description: 'Description 2', | 
|   }; | 
|   | 
|   const inputTripFeedback3: DialogTripFeedbackFields = { | 
|     Quantity: '800', | 
|     Description: 'Description 3', | 
|   }; | 
|   | 
|   const rowTripFeedback3: ListTripFeedbackColumn = { | 
|     ...rowTripFeedback1, | 
|     Quantity: '800', | 
|     Description: 'Description 3', | 
|   }; | 
|   | 
|   beforeAll(async () => { | 
|     jasmine.addMatchers(qCustomMatcher); | 
|     await appMP.login(); | 
|   }); | 
|   | 
|   afterAll(async () => { | 
|     await appMP.resetActiveView(appMP.viewFeedback); | 
|     await appMP.cleanupAndLogout(); | 
|   }); | 
|   | 
|   afterEach(async () => { | 
|     await appMP.checkToastMessage(); | 
|   }); | 
|   | 
|   describe('Create trip feedback', () => { | 
|     it(`Step 1 - ${AppMP.getDemoDataPath(Demo.Food, Scenario.Base)}`, async () => { | 
|       await appMP.createDemoDataset(Demo.Food, Scenario.Base, false); | 
|     }); | 
|   | 
|     it(`Step 2 - Open view ${appMP.viewFeedback.viewPath}.`, async () => { | 
|       await appMP.viewFeedback.switchTo(); | 
|     }); | 
|   | 
|     it(`Step 3 - ${StepNavigationPanel.showEntitiesList()}`, async () => { | 
|       await appMP.formNavigation.toggleEntityList(true); | 
|     }); | 
|   | 
|     it(`Step 4 - ${StepNavigationPanel.checkUnits([deTruckFleet])}`, async () => { | 
|       const row = await listEntity.getRow([dataFoodUnitsProvider, dataFoodUnits.DETruckFleet]); | 
|       await listEntity.toggleRowCheckbox(row, true); | 
|     }); | 
|   | 
|     it(`Step 5 - ${StepList.rightClickSelectMenu(ListTripFeedback.title, ListTripFeedbackContextMenuItem.Create.Label)}`, async () => { | 
|       [dlgTripFeedback] = await listTripFeedback.selectContextMenu(ListTripFeedbackContextMenuItem.Create); | 
|     }); | 
|   | 
|     it(`Step 6 - ${StepDialog.verifyDialogValues(DialogTripFeedback.title, { Unit: deTruckFleet })}`, async () => { | 
|       await dlgTripFeedback.verifyDialogValues({ Unit: deTruckFleet }); | 
|     }); | 
|   | 
|     it(`Step 7 - ${StepDropDownList.verifyAvailableValues('Lane Leg', laneLegDropDownListOptions)}`, async () => { | 
|       // Verify only these 2 lane legs visible in dropdownlist | 
|       await dlgTripFeedback.ddlLaneLeg.verifyAvailableValues(laneLegDropDownListOptions); | 
|     }); | 
|   | 
|     it(`Step 8 - ${StepDropDownList.verifyNumAvailableValues('Product', 8)}`, async () => { | 
|       // Verify that Product dropdown list contains 8 finished goods | 
|       await dlgTripFeedback.ddlProduct.verifyNumAvailableValues(8); | 
|     }); | 
|   | 
|     it(`Step 9 - ${StepDialog.updateDialogValues(DialogTripFeedback.title, inputTripFeedback1)}`, async () => { | 
|       await dlgTripFeedback.updateDialogValues(inputTripFeedback1); | 
|     }); | 
|   | 
|     it(`Step 10 - ${StepDialog.clickOK()}`, async () => { | 
|       await dlgTripFeedback.clickOK(); | 
|     }); | 
|   | 
|     it(`Step 11 - ${StepList.verifyRowExists(ListTripFeedback.title, rowTripFeedback1)}`, async () => { | 
|       await listTripFeedback.verifyRowExists(rowTripFeedback1); | 
|     }); | 
|   | 
|     it(`Step 12 - ${StepButton.click('Create')}`, async () => { | 
|       await abpPlan.btnCreate.click(); | 
|     }); | 
|   | 
|     it(`Step 13 - ${StepDialog.updateDialogValues(DialogTripFeedback.title, inputTripFeedback2)}`, async () => { | 
|       await dlgTripFeedback.updateDialogValues(inputTripFeedback2); | 
|     }); | 
|   | 
|     it(`Step 14 - ${StepDialog.clickOK()}`, async () => { | 
|       await dlgTripFeedback.clickOK(); | 
|     }); | 
|   | 
|     it(`Step 15 - ${StepList.verifyRowExists(ListTripFeedback.title, rowTripFeedback2)}`, async () => { | 
|       await listTripFeedback.verifyRowExists(rowTripFeedback2); | 
|     }); | 
|   }); | 
|   | 
|   describe('Edit trip feedback', () => { | 
|     it(`Step 1 - ${StepList.selectRowAndClickMenu(ListTripFeedback.title, rowTripFeedback1, ListTripFeedbackContextMenuItem.Edit.Label)}`, async () => { | 
|       const row = await listTripFeedback.getRow(rowTripFeedback1); | 
|       await listTripFeedback.selectContextMenu(ListTripFeedbackContextMenuItem.Edit, row); | 
|     }); | 
|   | 
|     it(`Step 2 - ${StepDialog.verifyDialogValues(DialogTripFeedback.title, inputTripFeedback1)}`, async () => { | 
|       await dlgTripFeedback.verifyDialogValues(inputTripFeedback1); | 
|     }); | 
|   | 
|     it(`Step 3 - ${StepDialog.updateDialogValues(DialogTripFeedback.title, inputTripFeedback3)} ${StepDialog.clickOK()}`, async () => { | 
|       await dlgTripFeedback.updateDialogValues(inputTripFeedback3); | 
|       await dlgTripFeedback.clickOK(); | 
|     }); | 
|   | 
|     it(`Step 4 - ${StepList.verifyRowExists(ListTripFeedback.title, rowTripFeedback3)}`, async () => { | 
|       await listTripFeedback.verifyRowExists(rowTripFeedback3); | 
|     }); | 
|   }); | 
| }); |