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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/**
 * @file        ADSO-9306
 * @description Open bookmark
 * @author      Kong Ching Shien (ckg6@3ds.com)
 * @copyright   Dassault Systèmes
 */
 
 import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const';
 import { AppMP, Demo, Scenario } from '../../libmp/appmp';
 import { FormNavigationPanel, ListBookmark, ListBookmarkColumn, ListEntity, ListProduct, ListSalesSegment, StepNavigationPanel } from '../../libmp/forms/navigationpanel/form.navigationpanel';
 import { DataProduct } from '../../libmp/data/data.product';
 import { DataSalesSegment } from '../../libmp/data/data.salessegment';
 import { StepButton } from '../../libappsop/buttonsop';
 import { StepDialog } from '../../libappsop/dialogsop';
 import { DialogBookmark, DialogBookmarkFields } from '../../libmp/dialogs/dialog.bookmark';
 import { StepList } from '../../libappsop/listsop';
 import { dataMetalsUnits, dataMetalsUnitsProvider } from '../../libmp/data/data.unit';
 
 describe('ADSO-9306 - Open bookmark', () => {
    const appMP = AppMP.getInstance();
    const listBookmark = appMP.formNavigation.listBookmark;
    const listNavEntity = appMP.formNavigation.listEntity;
    const listNavProduct = appMP.formNavigation.listProduct;
    const listNavSalesSegment = appMP.formNavigation.listSalesSegment;
    const asiaSP = dataMetalsUnits.AsiaSP.Name;
    const qiYing = dataMetalsUnits.QiYing.Name;
    const dlgBookmark = new DialogBookmark();
    const newBookmark: DialogBookmarkFields = {Folder: 'Sales demo metals', Name: 'Bookmark A'};
    const bookmarkRow: ListBookmarkColumn = {Name: 'Bookmark A'};
    const bookmarkRowParent: ListBookmarkColumn = {Name: 'Sales demo metals'};
 
    beforeAll(async () => {
     jasmine.addMatchers(qCustomMatcher);
     await appMP.login();
    });
 
    afterAll(async () => {
      await appMP.resetActiveView(appMP.viewScenario);
      await appMP.cleanupAndLogout();
    });
 
    afterEach(async () => {
      await appMP.checkToastMessage();
    });
 
    it(`Step 1 - ${AppMP.getDemoDataPath(Demo.Metals, Scenario.Base)}.`, async () => {
      await appMP.createDemoDataset(Demo.Metals, Scenario.Base, false);
    });
 
    it(`Step 2 - ${StepNavigationPanel.showEntitiesList()} ${StepNavigationPanel.checkStockingPoints([asiaSP, qiYing])}`, async () => {
      await appMP.formNavigation.toggleEntityList(true);
 
      // No need define parent unit/stocking point as 'provider' class will infer the ancestor(s)
      const rowAsiaSP = await listNavEntity.getRow([dataMetalsUnitsProvider, dataMetalsUnits.AsiaSP]);
      const rowQiYing = await listNavEntity.getRow([dataMetalsUnitsProvider, dataMetalsUnits.QiYing]);
      await listNavEntity.toggleRowCheckbox(rowAsiaSP, true);
      await listNavEntity.toggleRowCheckbox(rowQiYing, true);
    });
 
    it(`Step 3 - ${StepNavigationPanel.showProductsList()} ${StepNavigationPanel.checkProducts([DataProduct.CarPanels.Name.Name])}`, async () => {
      await appMP.formNavigation.toggleProductList(true);
 
      const row = await listNavProduct.getRow(DataProduct.CarPanels.Name, DataProduct.CarPanels.Parents);
      await listNavProduct.toggleRowCheckbox(row, true);
    });
 
    it(`Step 4 - ${StepNavigationPanel.showSalesSegmentsList()} ${StepNavigationPanel.checkSalesSegments([DataSalesSegment.BMW.Name.Name])}`, async () => {
      await appMP.formNavigation.toggleSalesSegmentList(true);
 
      const row = await listNavSalesSegment.getRow(DataSalesSegment.BMW.Name, DataSalesSegment.BMW.Parents);
      await listNavSalesSegment.toggleRowCheckbox(row, true);
    });
 
    it(`Step 5 - ${StepNavigationPanel.showBookmarkList()} ${StepButton.click(FormNavigationPanel.btnAddBookmark)} `, async () => {
      await appMP.formNavigation.toggleBookmarkList(true);
      await appMP.formNavigation.btnAddBookmark.click();
     });
 
    it(`Step 6 - ${StepDialog.updateDialogValues(DialogBookmark.title, newBookmark)} ${StepDialog.clickOK()}`, async () => {
      await dlgBookmark.updateDialogValues(newBookmark);
      await dlgBookmark.clickOK();
     });
 
    it(`Step 7 - ${StepNavigationPanel.clickHomeResetToRoot()}`, async () => {
      await appMP.formNavigation.resetNaviToRoot();
    });
 
    it(`Step 8 - ${StepList.expandRowInList(ListBookmark.title, 'Sales demo metals')} ${StepList.verifyRowExists(ListBookmark.title, bookmarkRow, [bookmarkRowParent])}`, async () => {
      const salesDemoMetalsFolder = await listBookmark.getRow(bookmarkRowParent);
      await salesDemoMetalsFolder.expandRow();
      await listBookmark.verifyRowExists(bookmarkRow, [bookmarkRowParent]);
    });
 
    it(`Step 9 - ${StepList.doubleClickRow(ListBookmark.title, bookmarkRow)}`, async () => {
      await listBookmark.doubleClickRow(bookmarkRow, [bookmarkRowParent]);
    });
 
    it(`Step 10 - ${StepList.verifyRowChecked(ListEntity.title, {DisplayName: asiaSP})} ${StepList.verifyRowChecked(ListEntity.title, {DisplayName: qiYing})} ${StepList.verifyRowChecked(ListProduct.title, DataProduct.CarPanels.Name)} ${StepList.verifyRowChecked(ListSalesSegment.title, DataSalesSegment.BMW.Name)}`, async () => {
      const [qiYing2, qyParent] = listNavEntity.getHierarchy(dataMetalsUnitsProvider, dataMetalsUnits.QiYing);
      const [asia2, asiaParent] = listNavEntity.getHierarchy(dataMetalsUnitsProvider, dataMetalsUnits.AsiaSP);
      await listNavEntity.verifyRowChecked(asia2, asiaParent);
      await listNavEntity.verifyRowChecked(qiYing2, qyParent);
      await listNavProduct.verifyRowChecked(DataProduct.CarPanels.Name, DataProduct.CarPanels.Parents);
      await listNavSalesSegment.verifyRowChecked(DataSalesSegment.BMW.Name, DataSalesSegment.BMW.Parents);
    });
 
  });