-
Notifications
You must be signed in to change notification settings - Fork 596
/
monitoring-page.ts
104 lines (102 loc) · 4.18 KB
/
monitoring-page.ts
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
import { monitoringTabs } from '../../constants';
import { monitoringPO } from '../../pageObjects';
export const detailsPage = {
isTabSelected: (tabSelector: string) =>
cy.get(tabSelector).parent('li').should('have.class', 'active'),
selectTab: (tabSelector: string) => cy.get(tabSelector).click(),
};
export const monitoringPage = {
dashboard: {
selectWorkload: (workloadName: string = 'All Workloads') => {
cy.get(monitoringPO.dashboardTab.workloadsFilter).click();
cy.byLegacyTestID('dropdown-text-filter').type(workloadName);
cy.get(`[id="${workloadName}-link"]`).click();
},
selectDashboard: (dashboardName: string) => {
cy.get(monitoringPO.dashboardTab.dashboardDropdown).click();
cy.get('input[type="search"]').type(dashboardName);
cy.get('button.monitoring-dashboards__dashboard_dropdown_item').first().click();
},
verifySection: () => cy.get(monitoringPO.dashboardTab.dashboard).should('exist'),
verifyCpuUsageGraph: () => cy.get(monitoringPO.dashboardTab.sections.cpuUsage).should('exist'),
verifyMemoryUsageGraph: () =>
cy.get(monitoringPO.dashboardTab.sections.memoryUsage).should('exist'),
verifyReceiveBandwidthGraph: () =>
cy.get(monitoringPO.dashboardTab.sections.receiveBandwidth).should('exist'),
verifyTransmitBandwidthGraph: () =>
cy.get(monitoringPO.dashboardTab.sections.transmitBandwidth).should('exist'),
verifyRateOfReceivedPacketsGraph: () =>
cy.get(monitoringPO.dashboardTab.sections.rateOfReceivedPackets).should('exist'),
verifyRateOfTransmittedPacketsGraph: () =>
cy.get(monitoringPO.dashboardTab.sections.rateOfTransmittedPackets).should('exist'),
verifyRateOfReceivedPacketsDroppedGraph: () =>
cy.get(monitoringPO.dashboardTab.sections.rateOfReceivedPacketsDropped).should('exist'),
verifyRateOfTransmittedPacketsDroppedGraph: () =>
cy.get(monitoringPO.dashboardTab.sections.rateOfTransmittedPacketsDropped).should('exist'),
},
metrics: {
enterQuery: (query: string) => {
cy.get(monitoringPO.metricsTab.queryExpression).type(query);
},
selectQuery: (queryValue: string) => {
cy.selectValueFromAutoCompleteDropDown(monitoringPO.metricsTab.selectQuery, queryValue);
},
verifyGraph: () => {
cy.get(monitoringPO.metricsTab.cpuGraph).should('be.visible');
},
verifyResetZoom: () => cy.byButtonText('Reset Zoom').should('be.visible'),
clickResetZoom: () => cy.byButtonText('Reset Zoom').click(),
},
alerts: {
search: (name: string) => {
cy.byLegacyTestID('item-filter').type(name);
},
filter: (
alertState: string[] = new Array('firing'),
severity: string[] = new Array('Critical'),
) => {
cy.byLegacyTestID('filter-dropdown-toggle').find('button').click();
cy.get(`[data-test-row-filter="${alertState}"]`).click();
// To Do
cy.byLegacyTestID(`[data-test-row-filter="${severity}"]`).click();
},
clickFilter: () => cy.byLegacyTestID('filter-dropdown-toggle').find('button').click(),
},
events: {
selectResources: (resourceName: string) => {
cy.selectValueFromAutoCompleteDropDown(monitoringPO.eventsTab.resources, resourceName);
},
selectType: () => {
cy.byLegacyTestID('dropdown-button').click();
cy.get('#all-link').click();
// To Do
},
},
selectTab: (tabName: monitoringTabs | string) => {
switch (tabName) {
case 'Dashboard':
case monitoringTabs.Dashboard:
detailsPage.selectTab(monitoringPO.tabs.dashboard);
cy.url().should('include', 'dev-monitoring/ns/');
break;
case 'Metrics':
case monitoringTabs.Metrics:
detailsPage.selectTab(monitoringPO.tabs.metrics);
cy.url().should('include', 'metrics');
break;
case 'Events':
case monitoringTabs.Events:
detailsPage.selectTab(monitoringPO.tabs.events);
cy.url().should('include', 'events');
break;
case 'Alerts':
case monitoringTabs.Alerts:
detailsPage.selectTab(monitoringPO.tabs.alerts);
cy.url().should('include', 'alerts');
break;
default:
cy.log(`${tabName} is unable to click on monitoring page`);
break;
}
},
};