yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/**
 * @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});
  });
});