/** 
 | 
 * @file        ADSO-10205 
 | 
 * @description Select parent level items in the navigation panel (Sales segment) 
 | 
 * @testcategory Web - Navigation 
 | 
 * @author      Meng Yew Cheah (MengYew.CHEAH@3ds.com) 
 | 
 * @copyright   Dassault Systemes 
 | 
 */ 
 | 
import { qCustomMatcher } from '../../../e2elib/lib/src/main/qmatchers.const'; 
 | 
import { AppMP, Demo, Scenario } from '../../../libmp/appmp'; 
 | 
import { ListSalesSegment, StepNavigationPanel, ListSalesSegmentColumn } from '../../../libmp/forms/navigationpanel/form.navigationpanel'; 
 | 
import { dataFoodSalesSegment, dataFoodSalesSegmentProvider } from '../../../libmp/data/data.salessegment'; 
 | 
import { StepList } from '../../../libappsop/listsop'; 
 | 
  
 | 
describe('ADSO-10205 - Select parent level items in the navigation panel (Sales segment)', () => { 
 | 
  const appMP = AppMP.getInstance(); 
 | 
  const listNavSalesSegment = appMP.formNavigation.listSalesSegment; 
 | 
  let name: ListSalesSegmentColumn; 
 | 
  let parent: ListSalesSegmentColumn[] | undefined; 
 | 
  
 | 
  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(`Step 1 - ${StepNavigationPanel.openNavigationPanel()}`, async () => { 
 | 
    await appMP.formNavigation.openNavigationPanel(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 2 - ${StepNavigationPanel.showSalesSegmentsList()}`, async () => { 
 | 
    await appMP.formNavigation.toggleSalesSegmentList(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 3 - ${StepNavigationPanel.checkSalesSegments([dataFoodSalesSegment.Target.Name])}`, async () => { 
 | 
    // New mechanism to pass only the Sales Segment name to 'dataFoodSalesSegmentProvider' to retrieve the ancestors recursively for easy maintenance 
 | 
    [name, parent] = listNavSalesSegment.getHierarchy(dataFoodSalesSegmentProvider, dataFoodSalesSegment.Target); 
 | 
    const targetRow = await listNavSalesSegment.getRow(name, parent); 
 | 
    await listNavSalesSegment.toggleRowCheckbox(targetRow, true); 
 | 
    await targetRow.expandRow(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 4 - ${StepList.verifyChildrenRowsChecked(ListSalesSegment.title, dataFoodSalesSegment.Target.Name)} `, async () => { 
 | 
    await listNavSalesSegment.verifyChildrenRowsChecked(true, name, parent); 
 | 
  }); 
 | 
  
 | 
  it (`Step 5 - ${StepNavigationPanel.unCheckSalesSegments ([dataFoodSalesSegment.Target.Name])}`, async () => { 
 | 
    const target = await listNavSalesSegment.getRow(name, parent); 
 | 
    await listNavSalesSegment.toggleRowCheckbox(target, false); 
 | 
    await target.expandRow(); 
 | 
  }); 
 | 
  
 | 
  it (`Step 6 - ${StepList.verifyChildrenRowsUnchecked (ListSalesSegment.title, dataFoodSalesSegment.Target.Name)}`, async () => { 
 | 
    await listNavSalesSegment.verifyChildrenRowsChecked(false, name, parent); 
 | 
  }); 
 | 
}); 
 |