| /** | 
|  * @file        ADSO-9562, ADSO-9571  - Create unit and SP with validity start later than validity end | 
|  * @description Create unit and SP with validity start later than validity end | 
|  * @author      Umar Adkhamov (umar.adkhamov@3ds.com) | 
|  * @copyright   Dassault Systemes | 
|  */ | 
| import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const'; | 
| import { AppMP, Demo, Scenario, Timeout } from '../../libmp/appmp'; | 
| import { startOfPlanningYear } from '../../libmp/data/data.period'; | 
| import { DialogStockingPoint } from '../../libmp/dialogs/dialog.stockingpoint'; | 
| import { DialogUnit, okButtonDisabledTooltip } from '../../libmp/dialogs/dialog.unit'; | 
| import { ListEntityContextMenuItem } from '../../libmp/forms/form.unit'; | 
|   | 
| describe('ADSO-9562, ADSO-9571 - Create unit and SP with validity start later than validity end', () => { | 
|   const appMP = AppMP.getInstance(); | 
|   const listEntity = appMP.viewEntity.formEntity.listEntity; | 
|   const dlgSP = new DialogStockingPoint(); | 
|   const sopYearMinus2 = `${startOfPlanningYear - 2}`; | 
|   const sopYearMinus1 = `${startOfPlanningYear - 1}`; | 
|   const augSOPMinus2 = `1-Aug-${sopYearMinus2}`; | 
|   const augSOPMinus1 = `1-Aug-${sopYearMinus1}`; | 
|   | 
|   beforeAll(async () => { | 
|     jasmine.addMatchers(qCustomMatcher); | 
|     await appMP.login(); | 
|   }); | 
|   | 
|   afterAll(async () => { | 
|     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(`ADSO-9562 - Open view ${appMP.viewEntity.viewPath}. Create unit with validity start later than validity end`, async () => { | 
|     await appMP.viewEntity.switchTo(); | 
|   | 
|     // Get number of rows before creating Unit to be compared after its creation | 
|     const entityCount = await listEntity.getRowCount(); | 
|   | 
|     // Create Unit with Start after End. Verify OK disabled | 
|     let [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.CreateUnit); | 
|     await dlgUnit.updateDialogValues({Parent: '', Name: 'Invalid Unit'}); | 
|     await dlgUnit.pnlAdvanced.clickTab(); // Switch tab to enter start & end | 
|     await dlgUnit.updateDialogValues({StartEnabled: 'true', EndEnabled: 'true', Start: augSOPMinus1, End: augSOPMinus2}); | 
|     await dlgUnit.verifyOKDisabled(okButtonDisabledTooltip.partialEndLaterThanStart(`Aug-1-${sopYearMinus1}`, `Aug-1-${sopYearMinus2}`)); | 
|     await dlgUnit.clickCancel(); | 
|   | 
|     // Create Unit with valid Start and End times and check that OK btn is enabled and Unit is created | 
|     [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.CreateUnit); | 
|     await dlgUnit.updateDialogValues({Parent: '', Name: 'Valid Unit'}); | 
|     await dlgUnit.pnlAdvanced.clickTab(); | 
|     await dlgUnit.updateDialogValues({StartEnabled: 'true', EndEnabled: 'true', Start: augSOPMinus2, End: augSOPMinus1}); | 
|     await dlgUnit.verifyOKEnabled(); | 
|     await dlgUnit.clickOK(); | 
|   | 
|     expect(await listEntity.getRowCount()).toBe(entityCount + 1, 'Number of Entities should be increased by 1'); | 
|   }); | 
|   | 
|   it('ADSO-9571 - Create stocking point with validity start later than validity end', async () => { | 
|     // Get number of rows before creating new Stocking Point to be compared after its creation | 
|     const entityCount = await listEntity.getRowCount(); | 
|   | 
|     // Create stocking point with Start after End and verify OK disabled | 
|     // Cast the tuple as use of the 2nd dlg variable will complain 'possibly undefined' | 
|     let [, dlgStockingPoint] = await listEntity.selectContextMenu(ListEntityContextMenuItem.CreateStockingPoint, undefined, dlgSP) as [DialogUnit, DialogStockingPoint]; | 
|     await dlgStockingPoint.updateDialogValues({Parent: '', Name: 'Invalid Stocking Point'}); | 
|     await dlgStockingPoint.pnlAdvanced.clickTab(); | 
|     await dlgStockingPoint.updateDialogValues({StartEnabled: 'true', EndEnabled: 'true', Start: augSOPMinus1, End: augSOPMinus2}); | 
|     await dlgStockingPoint.verifyOKDisabled(okButtonDisabledTooltip.partialEndLaterThanStart(`Aug-1-${sopYearMinus1}`, `Aug-1-${sopYearMinus2}`)); | 
|     await dlgStockingPoint.clickCancel(); | 
|   | 
|     // Create stocking point with valid Start and End times and check that OK btn is enabled and Unit is created | 
|     [, dlgStockingPoint] = await listEntity.selectContextMenu(ListEntityContextMenuItem.CreateStockingPoint, undefined, dlgSP) as [DialogUnit, DialogStockingPoint]; | 
|     await dlgStockingPoint.updateDialogValues({Parent: '', Name: 'Valid Stocking Point'}); | 
|     await dlgStockingPoint.pnlAdvanced.clickTab(); | 
|     await dlgStockingPoint.updateDialogValues({StartEnabled: 'true', EndEnabled: 'true', Start: augSOPMinus2, End: augSOPMinus1}); | 
|     await dlgStockingPoint.clickOK(Timeout.ButtonState); | 
|   | 
|     expect(await listEntity.getRowCount()).toBe(entityCount + 1, 'Number of Entities should be increased by 1'); | 
|   }); | 
| }); |