/** 
 | 
 * @file        ADSO-9342, ADSO-9343, ADSO-9344 - Create new assumption and edit assumption 
 | 
 * @description Create assumption via context menu and right corner 
 | 
 * @author      Wong Jia Hui (jiahui.wong@3ds.com), Umar Adkhamov (umar.adkhamov@3ds.com) 
 | 
 * @copyright   Dassault Systemes 
 | 
 */ 
 | 
import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const'; 
 | 
import { AppMP } from '../../libmp/appmp'; 
 | 
import { DataEmptyScenarioName } from '../../libmp/data/data.scenario'; 
 | 
import { ListAssumptionsContextMenuItem } from '../../libmp/forms/form.assumption'; 
 | 
import { ListScenarioContextMenuItem, ScenarioManager } from '../../libmp/forms/form.scenario'; 
 | 
  
 | 
describe('ADSO-9342, ADSO-9343, ADSO-9344 - Assumption management', () => { 
 | 
  const appMP = AppMP.getInstance(); 
 | 
  const listAssumption = appMP.viewScenario.formAssumption.listAssumption; 
 | 
  const listScenario = appMP.viewScenario.formScenario.lstScenario; 
 | 
  const newScenario = DataEmptyScenarioName.TestScenario1; 
 | 
  
 | 
  beforeAll(async () => { 
 | 
    jasmine.addMatchers(qCustomMatcher); 
 | 
    await appMP.login(); 
 | 
  }); 
 | 
  
 | 
  afterAll(async () => { 
 | 
    await appMP.cleanupAndLogout(); 
 | 
  }); 
 | 
  
 | 
  afterEach(async () => { 
 | 
    await appMP.checkToastMessage(); 
 | 
  }); 
 | 
  
 | 
  it(`Setup - Open view ${appMP.viewScenario.viewPath}. In Scenario Manager list, create empty scenario '${newScenario}' via context menu 'Create scenario...' and select it in list.`, async () => { 
 | 
    await appMP.viewScenario.switchTo(); 
 | 
  
 | 
    // Create empty scenario from Scenario Form via context menu 
 | 
    const [dlgScenario] = await listScenario.selectContextMenu(ListScenarioContextMenuItem.CreateScenario); 
 | 
    await dlgScenario.updateDialogValues({Name: newScenario, Assumption: '', Comment: 'Empty scenario'}); 
 | 
    await dlgScenario.clickOK(); 
 | 
  
 | 
    await listScenario.selectRow({Name: newScenario}, [{Name: ScenarioManager.AllScenarios}]); 
 | 
  }); 
 | 
  
 | 
  it(`ADSO-9342 - Create new assumption via context menu. Fill in every fields except Title. Verify OK disabled.<br> 
 | 
      Set Title = FirstAssumption and click OK. Verify assumption created in list.`, async () => { 
 | 
    // Create new assumption from Assumption Form via context menu 
 | 
    const [dlgAssumption] = await listAssumption.selectContextMenu(ListAssumptionsContextMenuItem.Create); 
 | 
  
 | 
    // Leave Title empty, verify OK disabled 
 | 
    await dlgAssumption.updateDialogValues({Title: '', Description: 'Our First Assumption', Type: 'Comment', Category: 'First', Importance: 'Medium'}); 
 | 
    await dlgAssumption.verifyOKDisabled(); 
 | 
  
 | 
    // Update Title and click OK 
 | 
    await dlgAssumption.updateDialogValues({Title: 'FirstAssumption'}); 
 | 
    await dlgAssumption.clickOK(); 
 | 
    await listAssumption.verifyRowExists({Title: 'FirstAssumption'}); 
 | 
  }); 
 | 
  
 | 
  it('ADSO-9343 - Create new assumption via right fixed corner of the action bar', async () => { 
 | 
    // Click "Create New Assumption" button in the right fixed corner of action bar 
 | 
    const dlgAssumption = await listAssumption.clickActionButton(appMP.btnCreateAssumption); 
 | 
  
 | 
    // Leave Title empty, verify OK disabled 
 | 
    await dlgAssumption.updateDialogValues({Title: '', Description: 'Our Second Assumption', Type: 'Risk', Category: 'Second', Importance: 'Low'}); 
 | 
    await dlgAssumption.verifyOKDisabled(); 
 | 
  
 | 
    // Update Title and click OK 
 | 
    await dlgAssumption.updateDialogValues({Title: 'SecondAssumption'}); 
 | 
    await dlgAssumption.clickOK(); 
 | 
    await listAssumption.verifyRowExists({Title: 'SecondAssumption'}); 
 | 
  }); 
 | 
  
 | 
  it('ADSO-9344 - Edit assumption via context menu.', async () => { 
 | 
    const firstAssumption = await listAssumption.getRow({Title: 'FirstAssumption'}); 
 | 
    const [dlgAssumption] = await listAssumption.selectContextMenu(ListAssumptionsContextMenuItem.Edit, firstAssumption); 
 | 
  
 | 
    // Store new values into variables 
 | 
    const title = 'EditedAssumption'; 
 | 
    const description = 'Yay we edited it!'; 
 | 
    const type = 'Highlight'; 
 | 
    const category = 'Edited'; 
 | 
    const importance = 'N/A'; 
 | 
    // Edit the assumption 
 | 
    await dlgAssumption.updateDialogValues({Title: title, Description: description, Type: type, Category: category, Importance: importance}); 
 | 
    await dlgAssumption.clickOK(); 
 | 
  
 | 
    await listAssumption.verifyRowValues(firstAssumption, {Title: title, Importance: importance, Category: category}); 
 | 
  }); 
 | 
}); 
 |