-
Notifications
You must be signed in to change notification settings - Fork 114
/
dashboard_sample_data_spec.js
354 lines (300 loc) · 10.2 KB
/
dashboard_sample_data_spec.js
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/
import {
CommonUI,
MiscUtils,
} from '@opensearch-dashboards-test/opensearch-dashboards-test-library';
import { CURRENT_TENANT } from '../../utils/commands';
/**
* dashboard_sample_data test suite description:
* 1) Visit the home page of opensearchdashboard, check key UI elements display
* 2) add sample data of eCommerce, flights, web logs from tutorial page
* 3) check each sample data dashboard key UI elements display
*/
export function dashboardSanityTests() {
const commonUI = new CommonUI(cy);
const miscUtils = new MiscUtils(cy);
const baseURL = new URL(Cypress.config().baseUrl);
// remove trailing slash
const path = baseURL.pathname.replace(/\/$/, '');
describe('dashboard sample data validation', () => {
before(() => {
CURRENT_TENANT.newTenant = 'global';
});
after(() => {});
describe('checking home page', () => {
before(() => {
// Go to the home page
miscUtils.visitPage('app/home#');
cy.window().then((win) =>
win.localStorage.setItem('home:welcome:show', false)
);
cy.reload(true);
});
after(() => {
cy.window().then((win) =>
win.localStorage.removeItem('home:welcome:show')
);
});
it('checking opensearch_dashboards_overview display', () => {
// Check that opensearch_dashboards_overview is visable
commonUI.checkElementExists(
`a[href="${path}/app/opensearch_dashboards_overview"]`,
1
);
});
it('checking tutorial_directory display', () => {
// Check that tutorial_directory is visable
commonUI.checkElementExists(
`a[href="${path}/app/home#/tutorial_directory"]`,
2
);
});
it('checking management display', () => {
// Check that management is visable
commonUI.checkElementExists(`a[href="${path}/app/management"]`, 1);
});
it('checking dev_tools display', () => {
// Check that dev_tools is visable
commonUI.checkElementExists(
`a[href="${path}/app/dev_tools#/console"]`,
2
);
});
it('settings display', () => {
// Check that settings is visable
commonUI.checkElementExists(
`a[href="${path}/app/management/opensearch-dashboards/settings#defaultRoute"]`,
1
);
});
it('checking feature_directory display', () => {
// Check that feature_directory is visable
commonUI.checkElementExists(
`a[href="${path}/app/home#/feature_directory"]`,
1
);
});
it('checking navigation display', () => {
// Check that navigation is visable
commonUI.checkElementExists(
'button[data-test-subj="toggleNavButton"]',
1
);
});
it('checking Help menu display', () => {
// Check that Help menu is visable
commonUI.checkElementExists('button[aria-label="Help menu"]', 1);
});
});
describe('adding sample data', () => {
before(() => {
miscUtils.addSampleData();
});
after(() => {
miscUtils.removeSampleData();
});
it('checking ecommerce dashboards displayed', () => {
miscUtils.viewData('ecommerce');
commonUI.checkElementContainsValue(
'span[title="[eCommerce] Revenue Dashboard"]',
1,
'\\[eCommerce\\] Revenue Dashboard'
);
commonUI.checkElementContainsValue(
'div[data-test-subj="markdownBody"] > h3',
1,
'Sample eCommerce Data'
);
});
it('checking flights dashboards displayed', () => {
miscUtils.viewData('flights');
commonUI.checkElementContainsValue(
'span[title="[Flights] Global Flight Dashboard"]',
1,
'\\[Flights\\] Global Flight Dashboard'
);
commonUI.checkElementContainsValue(
'div[data-test-subj="markdownBody"] > h3',
1,
'Sample Flight data'
);
});
it('checking web logs dashboards displayed', () => {
miscUtils.viewData('logs');
commonUI.checkElementContainsValue(
'span[title="[Logs] Web Traffic"]',
1,
'\\[Logs\\] Web Traffic'
);
commonUI.checkElementContainsValue(
'div[data-test-subj="markdownBody"] > h3',
1,
'Sample Logs Data'
);
});
describe('checking index patterns', () => {
before(() => {
miscUtils.visitPage(
'app/management/opensearch-dashboards/indexPatterns'
);
});
after(() => {});
it('checking ecommerce index patterns are added', () => {
commonUI.checkElementContainsValue(
'div[data-test-subj="indexPatternTable"]',
1,
'opensearch_dashboards_sample_data_ecommerce'
);
});
it('checking flights index patterns are added', () => {
commonUI.checkElementContainsValue(
'div[data-test-subj="indexPatternTable"]',
1,
'opensearch_dashboards_sample_data_flights'
);
});
it('checking web logs index patterns are added', () => {
commonUI.checkElementContainsValue(
'div[data-test-subj="indexPatternTable"]',
1,
'opensearch_dashboards_sample_data_logs'
);
});
});
describe('checking saved objects', () => {
before(() => {
miscUtils.visitPage('app/management/opensearch-dashboards/objects');
});
after(() => {});
it('checking ecommerce object is saved', () => {
commonUI.checkElementContainsValue(
'div[data-test-subj="savedObjectsTable"]',
1,
'opensearch_dashboards_sample_data_ecommerce'
);
});
it('checking flights object is saved', () => {
commonUI.checkElementContainsValue(
'div[data-test-subj="savedObjectsTable"]',
1,
'opensearch_dashboards_sample_data_flights'
);
});
it('checking web logs object is saved', () => {
commonUI.checkElementContainsValue(
'div[data-test-subj="savedObjectsTable"]',
1,
'opensearch_dashboards_sample_data_logs'
);
});
});
describe('checking Visualize', () => {
before(() => {
// Go to the Visualize page
miscUtils.visitPage('app/visualize#/');
});
after(() => {});
it('checking visualizations list display', () => {
commonUI.checkElementExists(
'div[data-test-subj="itemsInMemTable"]',
1
);
});
it('checking search bar display', () => {
commonUI.checkElementExists('input[placeholder="Search..."]', 1);
});
it('checking create visualization button display', () => {
commonUI.checkElementExists(
'button[data-test-subj="newItemButton"]',
1
);
});
});
describe('checking discover', () => {
before(() => {
// Go to the Discover page
miscUtils.visitPage('app/data-explorer/discover#/');
});
after(() => {});
it('checking save query button display', () => {
commonUI.checkElementExists(
'button[data-test-subj="saved-query-management-popover-button"]',
1
);
});
it('checking query input display', () => {
commonUI.checkElementExists(
'textarea[data-test-subj="queryInput"]',
1
);
});
it('checking refresh button display', () => {
commonUI.checkElementExists(
'button[data-test-subj="querySubmitButton"]',
1
);
});
it('checking add filter button display', () => {
commonUI.checkElementExists('button[data-test-subj="addFilter"]', 1);
});
it('checking index pattern switch button display', () => {
cy.getElementByTestId('dataExplorerDSSelect').should('be.visible');
});
it('checking field filter display', () => {
commonUI.checkElementExists(
'button[data-test-subj="toggleFieldFilterButton"]',
1
);
});
});
});
describe('checking Dev Tools', () => {
before(() => {
// Go to the Dev Tools page
miscUtils.visitPage('app/dev_tools#/console');
});
after(() => {});
it('checking welcome panel display', () => {
commonUI.checkElementExists('div[data-test-subj="welcomePanel"]', 1);
});
it('checking dismiss button display', () => {
commonUI.checkElementExists(
'button[data-test-subj="help-close-button"]',
1
);
});
it('checking console input area display', () => {
commonUI.checkElementExists('div[data-test-subj="request-editor"]', 1);
});
it('checking console output area display', () => {
commonUI.checkElementExists('div[data-test-subj="response-editor"]', 1);
});
});
describe('checking stack management', () => {
before(() => {
// Go to the stack management page
miscUtils.visitPage('app/management/');
});
after(() => {});
it('checking Stack Management display', () => {
// Check that Stack Management home is visable
commonUI.checkElementExists('div[data-test-subj="managementHome"]', 1);
});
it('checking index patterns link display', () => {
// Check that index patterns link is visable
commonUI.checkElementExists('a[data-test-subj="indexPatterns"]', 1);
});
it('checking saved objects link display', () => {
// Check that saved objects link is visable
commonUI.checkElementExists('a[data-test-subj="objects"]', 1);
});
it('checking advance settings link display', () => {
// Check that advance settings link is visable
commonUI.checkElementExists('a[data-test-subj="settings"]', 1);
});
});
});
}