/** 
 | 
 * @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); 
 | 
  }); 
 | 
}); 
 |