| /** | 
|  * @file        ADSO-50213 | 
|  * @description Delete forecasts | 
|  * @author      Clarence (ccn7@3ds.com) | 
|  * @copyright   Dassault Systèmes | 
|  */ | 
| import { AppMP, Demo, Scenario } from '../../libmp/appmp'; | 
| import { ListForecastsColumn, ListForecastsContextMenuItem } from '../../libmp/forms/form.forecasts'; | 
| import { DataMetalBaseSalesSegmentName } from '../../libmp/data/data.salessegment'; | 
| import { DataMetalBaseProductName } from '../../libmp/data/data.product'; | 
| import { DataMetalStockingPointName } from '../../libmp/data/data.stockingpoint'; | 
| import { StepList } from '../../libappsop/listsop'; | 
| import { StepActionBarPage } from '../../libappsop/actionbarpagesop'; | 
| import { startOfPlanningYear } from '../../libmp/data/data.period'; | 
|   | 
| describe('ADSO-50213 - Delete forecasts', () => { | 
|   const appMP = AppMP.getInstance(); | 
|   const janSOP = `1-Jan-${startOfPlanningYear}`; | 
|   const febSOP = `1-Feb-${startOfPlanningYear}`; | 
|   const listForecasts = appMP.viewForecasts.formForecasts.listForecasts; | 
|   const deleteRows: ListForecastsColumn[] = [{'Sales segment': DataMetalBaseSalesSegmentName.AllOrganics, Product: DataMetalBaseProductName.BCCBNarrow, 'Stocking point': DataMetalStockingPointName.NorthAmerica, Start: janSOP}, | 
|                                              {'Sales segment': DataMetalBaseSalesSegmentName.AllOrganics, Product: DataMetalBaseProductName.BCCBNarrow, 'Stocking point': DataMetalStockingPointName.NorthAmerica, Start: febSOP}]; | 
|   | 
|   beforeAll(async () => { | 
|     await appMP.login(); | 
|   }); | 
|   | 
|   afterAll(async () => { | 
|     await appMP.resetActiveView(appMP.viewForecasts); | 
|     await appMP.cleanupAndLogout(); | 
|   }); | 
|   | 
|   afterEach(async () => { | 
|     await appMP.checkToastMessage(); | 
|   }); | 
|   | 
|   it(`Step 1 - ${AppMP.getDemoDataPath(Demo.Metals, Scenario.Base)}.`, async () => { | 
|     await appMP.createDemoDataset(Demo.Metals, Scenario.Base, false); | 
|   }); | 
|   | 
|   it(`Step 2 - Open view ${appMP.viewForecasts.viewPath}.`, async () => { | 
|     await appMP.viewForecasts.switchTo(); | 
|   }); | 
|   | 
|   it(`Step 3 - ${StepList.selectRows(listForecasts.title, deleteRows)} ${StepActionBarPage.clickButton('Delete')}`, async () => { | 
|     const rows = await listForecasts.selectListRows(deleteRows); | 
|     await listForecasts.clickActionButton(appMP.abpSales.btnDelete, undefined, rows); | 
|   }); | 
|   | 
|   it(`Step 4 - ${StepList.verifyRowNotExist(listForecasts.title, deleteRows[0])} ${StepList.verifyRowNotExist(listForecasts.title, deleteRows[1])}`, async () => { | 
|     await listForecasts.verifyRowNotExist(deleteRows[0]); | 
|     await listForecasts.verifyRowNotExist(deleteRows[1]); | 
|   }); | 
|   | 
|   it(`Step 5 - ${StepList.selectAllRowsAndClickMenu(listForecasts.title, ListForecastsContextMenuItem.Delete.Label)}`, async () => { | 
|     await listForecasts.selectAllAndSelectContextMenu(ListForecastsContextMenuItem.Delete); | 
|   }); | 
|   | 
|   it(`Step 6 - ${StepList.verifyTotalRow(listForecasts.title, 0)}`, async () => { | 
|     await listForecasts.verifyTotalRow(0, 'Expected no more forecast in list after deleting all rows.'); | 
|   }); | 
|   | 
|   it(`Step 7 - ${StepList.verifyContextMenuDisabled(listForecasts.title, ListForecastsContextMenuItem.Delete.Label)}`, async () => { | 
|     await listForecasts.verifyContextMenuDisabled(ListForecastsContextMenuItem.Delete); | 
|   }); | 
|   | 
|   it(`Step 8 - ${StepActionBarPage.verifyButtonDisabled('Delete')}`, async () => { | 
|     await appMP.abpSales.btnDelete.verifyEnabled(false); | 
|   }); | 
| }); |