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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/**
 * @file        ADSO-52985
 * @description Verify filter on Routing Form based on Navigation panel selection. Pre-requisite is to run UTF_UnitTestMPRoutingFilterUI to create the required data and dataset.
 * @author      Zayn Shaikh (SHAIKH.zayn@3ds.com)
 * @copyright   Dassault Systèmes
 */
 
import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const';
import { AppMP, StepAppMP } from '../../libmp/appmp';
import { StepNavigationPanel } from '../../libmp/forms/navigationpanel/form.navigationpanel';
import { dataFoodProducts, dataFoodProductsProvider } from '../../libmp/data/data.product';
import { dataFoodUnits, dataFoodUnitsProvider } from '../../libmp/data/data.unit';
import { StepList } from '../../libappsop/listsop';
import { ListRouting, ListRoutingColumn } from '../../libmp/forms/form.routing';
import { ListRow } from '../../e2elib/lib/src/pageobjects/list/listrow.component';
 
describe('ADSO-52985 - Verify filter on Routing form based on Navigation panel selection', () => {
  const appMP = AppMP.getInstance();
  const scenarioToSelect = 'ADSO-52985';
  const listRouting = appMP.viewRouting.formRouting.listRouting;
  const formNavigation = appMP.formNavigation;
  const listEntity = formNavigation.listEntity;
  const listProduct = formNavigation.listProduct;
  const listRoutingTitle = ListRouting.title;
  const unitDenmarkPlant = dataFoodUnits.DenmarkPlant;
  const unitFrancePlant = dataFoodUnits.FrancePlant;
  const productGreek = dataFoodProducts.Greek;
  const productGreekBlueberry6pk = dataFoodProducts.GreekBlueberry6pk;
  let unitDenmarkPlantRow: ListRow;
  let unitFrancePlantRow: ListRow;
  const routingR1: ListRoutingColumn = {Name: 'R1'};
  const routingR2: ListRoutingColumn = {Name: 'R2'};
  const routingR3: ListRoutingColumn = {Name: 'R3'};
 
  beforeAll(async () => {
    jasmine.addMatchers(qCustomMatcher);
    await appMP.login();
  });
 
  afterAll(async () => {
    await appMP.resetActiveView(appMP.viewRouting);
    await appMP.cleanupAndLogout();
  });
 
  afterEach(async () => {
    await appMP.checkToastMessage();
  });
 
  it(`Setup - ${StepAppMP.selectScenario(scenarioToSelect)}`, async () => {
    await appMP.selectScenario(scenarioToSelect);
  });
 
  it(`Setup - Open view ${appMP.viewRouting.viewPath}`, async () => {
    await appMP.viewRouting.switchTo();
  });
 
  it(`Step 1 - ${StepList.verifyTotalRow(listRoutingTitle, 51)} ${StepList.verifyRowExists(listRoutingTitle, routingR1)} ${StepList.verifyRowExists(listRoutingTitle, routingR2)} ${StepList.verifyRowExists(listRoutingTitle, routingR3)}`, async () => {
    await listRouting.verifyTotalRow(51, 'Observe 48 Routings from demo and 3 new ones from UTF in the Routings List.');
    await listRouting.verifyRowExists(routingR1);
    await listRouting.verifyRowExists(routingR2);
    await listRouting.verifyRowExists(routingR3);
  });
 
  it(`Step 2 - ${StepNavigationPanel.showEntitiesList()} ${StepNavigationPanel.checkUnits([unitDenmarkPlant.Name])}`, async () => {
    await formNavigation.openNavigationPanel();
    await formNavigation.toggleEntityList();
    // We are selecting both the rows when opening the list for the first time, if we select later, then that results in error (list being too big) and unable to find the required row.
    unitDenmarkPlantRow = await listEntity.getRow([dataFoodUnitsProvider, unitDenmarkPlant]);
    unitFrancePlantRow = await listEntity.getRow([dataFoodUnitsProvider, unitFrancePlant]);
    await listEntity.toggleRowCheckbox(unitDenmarkPlantRow, true);
  });
 
  it(`Step 3 - ${StepList.verifyTotalRow(listRoutingTitle, 12)} ${StepList.verifyRowExists(listRoutingTitle, routingR1)} ${StepList.verifyRowExists(listRoutingTitle, routingR2)} ${StepList.verifyRowExists(listRoutingTitle, routingR3)}`, async () => {
    await listRouting.verifyTotalRow(12, 'Observe that 12 Routings (9 from standard demo and 3 newly created ones from UTF) are being shown.');
    await listRouting.verifyRowExists(routingR1);
    await listRouting.verifyRowExists(routingR2);
    await listRouting.verifyRowExists(routingR3);
  });
 
  it(`Step 4 - ${StepNavigationPanel.showProductsList()} ${StepNavigationPanel.checkProducts([productGreek.Name])}`, async () => {
    await formNavigation.toggleProductList();
    const row = await listProduct.getRow([dataFoodProductsProvider, productGreek]);
    await listProduct.toggleRowCheckbox(row, true);
  });
 
  it(`Step 5 - ${StepList.verifyTotalRow(listRoutingTitle, 7)} ${StepList.verifyRowExists(listRoutingTitle, routingR1)} ${StepList.verifyRowExists(listRoutingTitle, routingR2)} ${StepList.verifyRowExists(listRoutingTitle, routingR3)}`, async () => {
    await listRouting.verifyTotalRow(7, 'Observe that 7 Routings (4 from demo and 3 newly created ones) are being shown.');
    await listRouting.verifyRowExists(routingR1);
    await listRouting.verifyRowExists(routingR2);
    await listRouting.verifyRowExists(routingR3);
  });
 
  it(`Step 6 - ${StepNavigationPanel.uncheckUnits([unitDenmarkPlant.Name])}`, async () => {
    await listEntity.toggleRowCheckbox(unitDenmarkPlantRow, false);
  });
 
  it(`Step 7 - ${StepList.verifyTotalRow(listRoutingTitle, 15)} ${StepList.verifyRowExists(listRoutingTitle, routingR1)} ${StepList.verifyRowExists(listRoutingTitle, routingR2)} ${StepList.verifyRowExists(listRoutingTitle, routingR3)}`, async () => {
    await listRouting.verifyTotalRow(15, 'Observe that 15 Routings (12 from demo and 3 newly created ones) are being shown.');
    await listRouting.verifyRowExists(routingR1);
    await listRouting.verifyRowExists(routingR2);
    await listRouting.verifyRowExists(routingR3);
  });
 
  it(`Step 8 - ${StepNavigationPanel.checkUnits([unitFrancePlant.Name])}`, async () => {
    await listEntity.toggleRowCheckbox(unitFrancePlantRow, true);
  });
 
  it(`Step 9 - ${StepList.verifyTotalRow(listRoutingTitle, 5)} ${StepList.verifyRowExists(listRoutingTitle, routingR1)} ${StepList.verifyRowNotExist(listRoutingTitle, routingR2)} ${StepList.verifyRowNotExist(listRoutingTitle, routingR3)}`, async () => {
    await listRouting.verifyTotalRow(5, 'Observe that 5 Routings (4 from demo and 1 newly created one) are being shown.');
    await listRouting.verifyRowExists(routingR1);
    await listRouting.verifyRowNotExist(routingR2);
    await listRouting.verifyRowNotExist(routingR3);
  });
 
  it(`Step 10 - ${StepNavigationPanel.uncheckUnits([unitFrancePlant.Name])}`, async () => {
    await listEntity.toggleRowCheckbox(unitFrancePlantRow, false);
  });
 
  it(`Step 11 - ${StepNavigationPanel.unCheckProducts([productGreek.Name])}`, async () => {
    const row = await listProduct.getRow([dataFoodProductsProvider, productGreek]);
    await listProduct.toggleRowCheckbox(row, false);
  });
 
  it(`Step 12 - ${StepNavigationPanel.checkProducts([productGreekBlueberry6pk.Name])}`, async () => {
    const row = await listProduct.getRow([dataFoodProductsProvider, productGreekBlueberry6pk]);
    await listProduct.toggleRowCheckbox(row, true);
  });
 
  it(`Step 13 - ${StepList.verifyTotalRow(listRoutingTitle, 5)}  ${StepList.verifyRowExists(listRoutingTitle, routingR1)} ${StepList.verifyRowExists(listRoutingTitle, routingR2)} ${StepList.verifyRowNotExist(listRoutingTitle, routingR3)}`, async () => {
    await listRouting.verifyTotalRow(5, 'Observe that 5 Routings (3 from demo and 2 newly created one) are being shown.');
    await listRouting.verifyRowExists(routingR1);
    await listRouting.verifyRowExists(routingR2);
    await listRouting.verifyRowNotExist(routingR3);
  });
 
});