/** 
 | 
 * @file        ADSO-50615 
 | 
 * @description Toggle shift optimization on off on units 
 | 
 * @author      Chan Clarence (ccn7@3ds.com) 
 | 
 * @copyright   Dassault Systemes 
 | 
 */ 
 | 
import { AppMP, Demo, Scenario } from '../../libmp/appmp'; 
 | 
import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const'; 
 | 
import { ListRow } from '../../e2elib/lib/src/pageobjects/list/listrow.component'; 
 | 
import { StepDialog } from '../../libappsop/dialogsop'; 
 | 
import { StepList } from '../../libappsop/listsop'; 
 | 
import { DataMetalBaseEntityName, dataMetalsUnits, DataUnitCapacityType } from '../../libmp/data/data.unit'; 
 | 
import { DialogUnit } from '../../libmp/dialogs/dialog.unit'; 
 | 
import { ListEntity, ListEntityContextMenuItem } from '../../libmp/forms/form.unit'; 
 | 
  
 | 
describe('ADSO-50615 - Toggle shift optimization on off on units', () => { 
 | 
  const appMP = AppMP.getInstance(); 
 | 
  const listEntity = appMP.viewEntity.formEntity.listEntity; 
 | 
  const recyclingFurnaceQiYing = dataMetalsUnits.RecyclingFurnaceQiYing.Name; 
 | 
  let dlgUnit: DialogUnit; 
 | 
  
 | 
  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.Metals, Scenario.Base)}`, async () => { 
 | 
    await appMP.createDemoDataset(Demo.Metals, Scenario.Base, false); 
 | 
  }); 
 | 
  
 | 
  it(`Setup - Open view ${appMP.viewEntity.viewPath}.`, async () => { 
 | 
    await appMP.viewEntity.switchTo(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 1 - ${StepList.rightClickSelectMenu(ListEntity.title, ListEntityContextMenuItem.CreateUnit.Label)} ${StepDialog.updateDialogValues(DialogUnit.title, {CapacityType: DataUnitCapacityType.Time})}`, async () => { 
 | 
    [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.CreateUnit); 
 | 
    await dlgUnit.updateDialogValues({CapacityType: DataUnitCapacityType.Time}); 
 | 
  }); 
 | 
  
 | 
  it(`Step 2 - ${StepDialog.clickTab('Advanced')}`, async () => { 
 | 
    await dlgUnit.pnlAdvanced.clickTab(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 3 - ${StepDialog.verifyDialogUIVisible(DialogUnit.title, {BatchEditShiftPatternOpt: 'false'})} 
 | 
      ${StepDialog.verifyDialogEnabled(DialogUnit.title, {ShiftPatternOpt: 'true'})} 
 | 
      ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'false'})}`, async () => { 
 | 
    await dlgUnit.verifyDialogUIVisible({BatchEditShiftPatternOpt: 'false'}); 
 | 
    await dlgUnit.verifyDialogEnabled({ShiftPatternOpt: 'true'}); 
 | 
    await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'false'}); 
 | 
  }); 
 | 
  
 | 
  it(`Step 4 - ${StepDialog.clickTab('General')} ${StepDialog.updateDialogValues(DialogUnit.title, {CapacityType: DataUnitCapacityType.TimeAggregation})}`, async () => { 
 | 
    await dlgUnit.pnlGeneral.clickTab(); 
 | 
    await dlgUnit.updateDialogValues({CapacityType: DataUnitCapacityType.TimeAggregation}); 
 | 
  }); 
 | 
  
 | 
  it(`Step 5 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogUIVisible(DialogUnit.title, {BatchEditShiftPatternOpt: 'false'})} 
 | 
      ${StepDialog.verifyDialogEnabled(DialogUnit.title, {ShiftPatternOpt: 'true'})} 
 | 
      ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'false'})}`, async () => { 
 | 
    await dlgUnit.pnlAdvanced.clickTab(); 
 | 
    await dlgUnit.verifyDialogUIVisible({BatchEditShiftPatternOpt: 'false'}); 
 | 
    await dlgUnit.verifyDialogEnabled({ShiftPatternOpt: 'true'}); 
 | 
    await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'false'}); 
 | 
  }); 
 | 
  
 | 
  it(`Step 6 - ${StepDialog.clickTab('General')} ${StepDialog.updateDialogValues(DialogUnit.title, {CapacityType: DataUnitCapacityType.Quantity})}`, async () => { 
 | 
    await dlgUnit.pnlGeneral.clickTab(); 
 | 
    await dlgUnit.updateDialogValues({CapacityType: DataUnitCapacityType.Quantity}); 
 | 
  }); 
 | 
  
 | 
  it(`Step 7 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogUIVisible(DialogUnit.title, {BatchEditShiftPatternOpt: 'false'})} 
 | 
      ${StepDialog.verifyDialogEnabled(DialogUnit.title, {ShiftPatternOpt: 'false'})} 
 | 
      ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'false'})}`, async () => { 
 | 
    await dlgUnit.pnlAdvanced.clickTab(); 
 | 
    await dlgUnit.verifyDialogUIVisible({BatchEditShiftPatternOpt: 'false'}); 
 | 
    await dlgUnit.verifyDialogEnabled({ShiftPatternOpt: 'false'}); 
 | 
    await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'false'}); 
 | 
  }); 
 | 
  
 | 
  it(`Step 8 - ${StepDialog.clickCancel()}`, async () => { 
 | 
    await dlgUnit.clickCancel(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 9 - ${StepList.selectRowsAndClickMenu(ListEntity.title, [{Name: recyclingFurnaceQiYing}, {Name: DataMetalBaseEntityName.SupplierUBCScrapAsia}], ListEntityContextMenuItem.Edit.Label)}`, async () => { 
 | 
    const row1 = await listEntity.getRow({Name: recyclingFurnaceQiYing}, 
 | 
                                         [{Name: DataMetalBaseEntityName.QAluminum}, {Name: DataMetalBaseEntityName.Asia}, {Name: DataMetalBaseEntityName.QiYing}, {Name: DataMetalBaseEntityName.Casthouse}]); 
 | 
    const row2 = await listEntity.getRow({Name: DataMetalBaseEntityName.SupplierUBCScrapAsia}, [{Name: DataMetalBaseEntityName.QAluminum}, {Name: DataMetalBaseEntityName.Asia}]); 
 | 
    const rows: ListRow[] = [row1, row2]; 
 | 
  
 | 
    await listEntity.selectRows(rows); 
 | 
  
 | 
    [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.Edit, rows); 
 | 
  }); 
 | 
  
 | 
  it(`Step 10 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogUIVisible(DialogUnit.title, {BatchEditShiftPatternOpt: 'true'})} 
 | 
      ${StepDialog.verifyDialogEnabled(DialogUnit.title, {BatchEditShiftPatternOpt: 'false', ShiftPatternOpt: 'false'})}`, async () => { 
 | 
    await dlgUnit.pnlAdvanced.clickTab(); 
 | 
    await dlgUnit.verifyDialogUIVisible({BatchEditShiftPatternOpt: 'true'}); 
 | 
    await dlgUnit.verifyDialogEnabled({BatchEditShiftPatternOpt: 'false', ShiftPatternOpt: 'false'}); 
 | 
  }); 
 | 
  
 | 
  it(`Step 11 - ${StepDialog.clickCancel()}`, async () => { 
 | 
    await dlgUnit.clickCancel(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 12 - ${StepList.selectRowsAndClickMenu(ListEntity.title, [{Name: recyclingFurnaceQiYing}, {Name: DataMetalBaseEntityName.CasterQiYing}], ListEntityContextMenuItem.Edit.Label)}`, async () => { 
 | 
    const rows = await listEntity.getRows([{Name: recyclingFurnaceQiYing}, {Name: DataMetalBaseEntityName.CasterQiYing}], 
 | 
                                          [{Name: DataMetalBaseEntityName.QAluminum}, {Name: DataMetalBaseEntityName.Asia}, {Name: DataMetalBaseEntityName.QiYing}, {Name: DataMetalBaseEntityName.Casthouse}]); 
 | 
    await listEntity.selectRows(rows); 
 | 
    [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.Edit, rows); 
 | 
  }); 
 | 
  
 | 
  it(`Step 13 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogUIVisible(DialogUnit.title, {BatchEditShiftPatternOpt: 'true'})} 
 | 
      ${StepDialog.verifyDialogEnabled(DialogUnit.title, {BatchEditShiftPatternOpt: 'true', ShiftPatternOpt: 'false'})} 
 | 
      ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'false'})}`, async () => { 
 | 
    await dlgUnit.pnlAdvanced.clickTab(); 
 | 
    await dlgUnit.verifyDialogUIVisible({BatchEditShiftPatternOpt: 'true'}); 
 | 
    await dlgUnit.verifyDialogEnabled({BatchEditShiftPatternOpt: 'true', ShiftPatternOpt: 'false'}); 
 | 
    await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'false'}); 
 | 
  }); 
 | 
  
 | 
  it(`Step 14 - ${StepDialog.updateDialogValues(DialogUnit.title, {BatchEditShiftPatternOpt: 'true'})} 
 | 
      ${StepDialog.verifyDialogEnabled(DialogUnit.title, {ShiftPatternOpt: 'true'})} 
 | 
      ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'false'})}`, async () => { 
 | 
    await dlgUnit.updateDialogValues({BatchEditShiftPatternOpt: 'true'}); 
 | 
    await dlgUnit.verifyDialogEnabled({ShiftPatternOpt: 'true'}); 
 | 
    await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'false'}); 
 | 
  }); 
 | 
  
 | 
  it(`Step 15 - ${StepDialog.updateDialogValues(DialogUnit.title, {ShiftPatternOpt: 'true'})}`, async () => { 
 | 
    await dlgUnit.updateDialogValues({ShiftPatternOpt: 'true'}); 
 | 
  }); 
 | 
  
 | 
  it(`Step 16 - ${StepDialog.clickOK()}`, async () => { 
 | 
    await dlgUnit.clickOK(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 17 - ${StepList.selectRowAndClickMenu(ListEntity.title, {Name: recyclingFurnaceQiYing}, ListEntityContextMenuItem.Edit.Label)}`, async () => { 
 | 
    const row = await listEntity.getRow({Name: recyclingFurnaceQiYing}, 
 | 
                                        [{Name: DataMetalBaseEntityName.QAluminum}, {Name: DataMetalBaseEntityName.Asia}, {Name: DataMetalBaseEntityName.QiYing}, {Name: DataMetalBaseEntityName.Casthouse}]); 
 | 
    [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.Edit, row); 
 | 
  }); 
 | 
  
 | 
  it(`Step 18 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'true'})} ${StepDialog.clickCancel()}`, async () => { 
 | 
    await dlgUnit.pnlAdvanced.clickTab(); 
 | 
    await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'true'}); 
 | 
    await dlgUnit.clickCancel(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 19 - ${StepList.selectRowAndClickMenu(ListEntity.title, {Name: DataMetalBaseEntityName.CasterQiYing}, ListEntityContextMenuItem.Edit.Label)}`, async () => { 
 | 
    const row = await listEntity.getRow({Name: DataMetalBaseEntityName.CasterQiYing}, [{Name: DataMetalBaseEntityName.QAluminum}, {Name: DataMetalBaseEntityName.Asia}, {Name: DataMetalBaseEntityName.QiYing}, {Name: DataMetalBaseEntityName.Casthouse}]); 
 | 
    [dlgUnit] = await listEntity.selectContextMenu(ListEntityContextMenuItem.Edit, row); 
 | 
  }); 
 | 
  
 | 
  it(`Step 20 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyDialogValues(DialogUnit.title, {ShiftPatternOpt: 'true'})} ${StepDialog.clickCancel()}`, async () => { 
 | 
    await dlgUnit.pnlAdvanced.clickTab(); 
 | 
    await dlgUnit.verifyDialogValues({ShiftPatternOpt: 'true'}); 
 | 
    await dlgUnit.clickCancel(); 
 | 
  }); 
 | 
}); 
 |