/** 
 | 
 * @file        ADSO-9557 
 | 
 * @description Delete units 
 | 
 * @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 { DataFoodBaseEntityName } from '../../libmp/data/data.navigation'; 
 | 
import { ListEntity, ListEntityColumn, ListEntityContextMenuItem } from '../../libmp/forms/form.unit'; 
 | 
import { StepList } from '../../libappsop/listsop'; 
 | 
  
 | 
describe('ADSO-9557 - Delete units', () => { 
 | 
  const appMP = AppMP.getInstance(); 
 | 
  const listEntity = appMP.viewEntity.formEntity.listEntity; 
 | 
  const selectUnitsToDelete: ListEntityColumn[] = [{Name: DataFoodBaseEntityName.PackagingSupplier}, {Name: DataFoodBaseEntityName.DEDairySupplier}]; 
 | 
  const parentSupplier: ListEntityColumn[] = [{Name: DataFoodBaseEntityName.Europe}, {Name: DataFoodBaseEntityName.Suppliers}]; 
 | 
  const rootUnitToDelete: ListEntityColumn = {Name: DataFoodBaseEntityName.Europe}; 
 | 
  
 | 
  beforeAll(async () => { 
 | 
    jasmine.addMatchers(qCustomMatcher); 
 | 
    await appMP.login(); 
 | 
  }); 
 | 
  
 | 
  afterAll(async () => { 
 | 
    await appMP.resetActiveView(appMP.viewEntity); 
 | 
    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 - ${StepList.selectRowsAndClickMenu(ListEntity.title, selectUnitsToDelete, ListEntityContextMenuItem.Delete.Label)}`, async () => { 
 | 
    const rows = await listEntity.getRows(selectUnitsToDelete, parentSupplier); 
 | 
    await listEntity.selectRows(rows); 
 | 
    await listEntity.selectContextMenu(ListEntityContextMenuItem.Delete, rows); 
 | 
  }); 
 | 
  
 | 
  it(`Step 2 - ${StepList.verifyRowNotExist(ListEntity.title, selectUnitsToDelete[0])} ${StepList.verifyRowNotExist(ListEntity.title, selectUnitsToDelete[1])}`, async () => { 
 | 
    await listEntity.verifyRowNotExist(selectUnitsToDelete[0], parentSupplier); 
 | 
    await listEntity.verifyRowNotExist(selectUnitsToDelete[1], parentSupplier); 
 | 
  }); 
 | 
  
 | 
  it(`Step 3 - ${StepList.selectRowAndClickMenu(ListEntity.title, rootUnitToDelete, ListEntityContextMenuItem.Delete.Label)}`, async () => { 
 | 
    // Verify stocking point under parent Europe (before we delete Europe root unit) 
 | 
    await listEntity.verifyRowExists({Name: DataFoodBaseEntityName.DCAustria}, [{Name: DataFoodBaseEntityName.Europe}]); 
 | 
  
 | 
    const row = await listEntity.getRow(rootUnitToDelete); 
 | 
    await listEntity.selectContextMenu(ListEntityContextMenuItem.Delete, row); 
 | 
  }); 
 | 
  
 | 
  it(`Step 4 - ${StepList.verifyRowExists(ListEntity.title, {Name: DataFoodBaseEntityName.DCAustria})}`, async () => { 
 | 
    // Verify stocking point appears as root after deleting its parent unit 
 | 
    await listEntity.verifyRowExists({Name: DataFoodBaseEntityName.DCAustria}); 
 | 
  }); 
 | 
}); 
 |