Skip to content

Commit b6c6fba

Browse files
Functional tests: refactor dashboard_page (#54588)
* [test/functional] cleanup & tsfy dashboard_page * fix & improvement Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
1 parent 1e87504 commit b6c6fba

19 files changed

+312
-322
lines changed

test/functional/apps/dashboard/dashboard_clone.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import expect from '@kbn/expect';
2121

2222
export default function({ getService, getPageObjects }) {
2323
const retry = getService('retry');
24+
const listingTable = getService('listingTable');
2425
const PageObjects = getPageObjects(['dashboard', 'header', 'common']);
2526

2627
describe('dashboard clone', function describeIndexTests() {
@@ -40,10 +41,12 @@ export default function({ getService, getPageObjects }) {
4041

4142
await PageObjects.dashboard.clickClone();
4243
await PageObjects.dashboard.confirmClone();
43-
44-
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(
44+
await PageObjects.dashboard.gotoDashboardLandingPage();
45+
const countOfDashboards = await listingTable.searchAndGetItemsCount(
46+
'dashboard',
4547
clonedDashboardName
4648
);
49+
4750
expect(countOfDashboards).to.equal(1);
4851
});
4952

@@ -70,8 +73,10 @@ export default function({ getService, getPageObjects }) {
7073

7174
it("and doesn't save", async () => {
7275
await PageObjects.dashboard.cancelClone();
76+
await PageObjects.dashboard.gotoDashboardLandingPage();
7377

74-
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(
78+
const countOfDashboards = await listingTable.searchAndGetItemsCount(
79+
'dashboard',
7580
dashboardName
7681
);
7782
expect(countOfDashboards).to.equal(1);
@@ -85,8 +90,10 @@ export default function({ getService, getPageObjects }) {
8590
await PageObjects.dashboard.expectDuplicateTitleWarningDisplayed({ displayed: true });
8691
await PageObjects.dashboard.confirmClone();
8792
await PageObjects.dashboard.waitForRenderComplete();
93+
await PageObjects.dashboard.gotoDashboardLandingPage();
8894

89-
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(
95+
const countOfDashboards = await listingTable.searchAndGetItemsCount(
96+
'dashboard',
9097
dashboardName + ' Copy'
9198
);
9299
expect(countOfDashboards).to.equal(2);

test/functional/apps/dashboard/dashboard_filter_bar.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export default function({ getService, getPageObjects }) {
2727
const pieChart = getService('pieChart');
2828
const esArchiver = getService('esArchiver');
2929
const kibanaServer = getService('kibanaServer');
30-
const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'visualize']);
30+
const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'visualize', 'timePicker']);
3131

3232
describe('dashboard filter bar', () => {
3333
before(async () => {
@@ -91,7 +91,7 @@ export default function({ getService, getPageObjects }) {
9191
await filterBar.ensureFieldEditorModalIsClosed();
9292
await PageObjects.dashboard.gotoDashboardLandingPage();
9393
await PageObjects.dashboard.clickNewDashboard();
94-
await PageObjects.dashboard.setTimepickerInDataRange();
94+
await PageObjects.timePicker.setDefaultDataRange();
9595
});
9696

9797
it('are not selected by default', async function() {
@@ -136,7 +136,7 @@ export default function({ getService, getPageObjects }) {
136136
await filterBar.ensureFieldEditorModalIsClosed();
137137
await PageObjects.dashboard.gotoDashboardLandingPage();
138138
await PageObjects.dashboard.clickNewDashboard();
139-
await PageObjects.dashboard.setTimepickerInDataRange();
139+
await PageObjects.timePicker.setDefaultDataRange();
140140
});
141141

142142
it('are added when a cell magnifying glass is clicked', async function() {

test/functional/apps/dashboard/dashboard_filtering.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export default function({ getService, getPageObjects }) {
3434
const esArchiver = getService('esArchiver');
3535
const kibanaServer = getService('kibanaServer');
3636
const dashboardPanelActions = getService('dashboardPanelActions');
37-
const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'visualize']);
37+
const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'visualize', 'timePicker']);
3838

3939
describe('dashboard filtering', function() {
4040
this.tags('smoke');
@@ -52,7 +52,7 @@ export default function({ getService, getPageObjects }) {
5252
describe('adding a filter that excludes all data', () => {
5353
before(async () => {
5454
await PageObjects.dashboard.clickNewDashboard();
55-
await PageObjects.dashboard.setTimepickerInDataRange();
55+
await PageObjects.timePicker.setDefaultDataRange();
5656
await dashboardAddPanel.addEveryVisualization('"Filter Bytes Test"');
5757
await dashboardAddPanel.addEverySavedSearch('"Filter Bytes Test"');
5858

@@ -234,7 +234,7 @@ export default function({ getService, getPageObjects }) {
234234

235235
it('visualization saved with a query filters data', async () => {
236236
await PageObjects.dashboard.clickNewDashboard();
237-
await PageObjects.dashboard.setTimepickerInDataRange();
237+
await PageObjects.timePicker.setDefaultDataRange();
238238

239239
await dashboardAddPanel.addVisualization('Rendering-Test:-animal-sounds-pie');
240240
await PageObjects.header.waitUntilLoadingHasFinished();

test/functional/apps/dashboard/dashboard_listing.js

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import expect from '@kbn/expect';
2222
export default function({ getService, getPageObjects }) {
2323
const PageObjects = getPageObjects(['dashboard', 'header', 'common']);
2424
const browser = getService('browser');
25+
const listingTable = getService('listingTable');
2526

2627
describe('dashboard listing page', function describeIndexTests() {
2728
const dashboardName = 'Dashboard Listing Test';
@@ -41,7 +42,8 @@ export default function({ getService, getPageObjects }) {
4142
await PageObjects.dashboard.saveDashboard(dashboardName);
4243

4344
await PageObjects.dashboard.gotoDashboardLandingPage();
44-
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(
45+
const countOfDashboards = await listingTable.searchAndGetItemsCount(
46+
'dashboard',
4547
dashboardName
4648
);
4749
expect(countOfDashboards).to.equal(1);
@@ -53,7 +55,8 @@ export default function({ getService, getPageObjects }) {
5355
});
5456

5557
it('is not shown when there are no dashboards shown during a search', async function() {
56-
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(
58+
const countOfDashboards = await listingTable.searchAndGetItemsCount(
59+
'dashboard',
5760
'gobeldeguck'
5861
);
5962
expect(countOfDashboards).to.equal(0);
@@ -65,29 +68,31 @@ export default function({ getService, getPageObjects }) {
6568

6669
describe('delete', function() {
6770
it('default confirm action is cancel', async function() {
68-
await PageObjects.dashboard.searchForDashboardWithName(dashboardName);
69-
await PageObjects.dashboard.checkDashboardListingSelectAllCheckbox();
70-
await PageObjects.dashboard.clickDeleteSelectedDashboards();
71+
await listingTable.searchForItemWithName(dashboardName);
72+
await listingTable.checkListingSelectAllCheckbox();
73+
await listingTable.clickDeleteSelected();
7174

7275
await PageObjects.common.expectConfirmModalOpenState(true);
7376

7477
await PageObjects.common.pressEnterKey();
7578

7679
await PageObjects.common.expectConfirmModalOpenState(false);
7780

78-
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(
81+
const countOfDashboards = await listingTable.searchAndGetItemsCount(
82+
'dashboard',
7983
dashboardName
8084
);
8185
expect(countOfDashboards).to.equal(1);
8286
});
8387

8488
it('succeeds on confirmation press', async function() {
85-
await PageObjects.dashboard.checkDashboardListingSelectAllCheckbox();
86-
await PageObjects.dashboard.clickDeleteSelectedDashboards();
89+
await listingTable.checkListingSelectAllCheckbox();
90+
await listingTable.clickDeleteSelected();
8791

8892
await PageObjects.common.clickConfirmOnModal();
8993

90-
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(
94+
const countOfDashboards = await listingTable.searchAndGetItemsCount(
95+
'dashboard',
9196
dashboardName
9297
);
9398
expect(countOfDashboards).to.equal(0);
@@ -96,44 +101,45 @@ export default function({ getService, getPageObjects }) {
96101

97102
describe('search', function() {
98103
before(async () => {
99-
await PageObjects.dashboard.clearSearchValue();
104+
await listingTable.clearSearchFilter();
100105
await PageObjects.dashboard.clickNewDashboard();
101106
await PageObjects.dashboard.saveDashboard('Two Words');
107+
await PageObjects.dashboard.gotoDashboardLandingPage();
102108
});
103109

104110
it('matches on the first word', async function() {
105-
await PageObjects.dashboard.searchForDashboardWithName('Two');
106-
const countOfDashboards = await PageObjects.dashboard.getCountOfDashboardsInListingTable();
111+
await listingTable.searchForItemWithName('Two');
112+
const countOfDashboards = await listingTable.getItemsCount('dashboard');
107113
expect(countOfDashboards).to.equal(1);
108114
});
109115

110116
it('matches the second word', async function() {
111-
await PageObjects.dashboard.searchForDashboardWithName('Words');
112-
const countOfDashboards = await PageObjects.dashboard.getCountOfDashboardsInListingTable();
117+
await listingTable.searchForItemWithName('Words');
118+
const countOfDashboards = await listingTable.getItemsCount('dashboard');
113119
expect(countOfDashboards).to.equal(1);
114120
});
115121

116122
it('matches the second word prefix', async function() {
117-
await PageObjects.dashboard.searchForDashboardWithName('Wor');
118-
const countOfDashboards = await PageObjects.dashboard.getCountOfDashboardsInListingTable();
123+
await listingTable.searchForItemWithName('Wor');
124+
const countOfDashboards = await listingTable.getItemsCount('dashboard');
119125
expect(countOfDashboards).to.equal(1);
120126
});
121127

122128
it('does not match mid word', async function() {
123-
await PageObjects.dashboard.searchForDashboardWithName('ords');
124-
const countOfDashboards = await PageObjects.dashboard.getCountOfDashboardsInListingTable();
129+
await listingTable.searchForItemWithName('ords');
130+
const countOfDashboards = await listingTable.getItemsCount('dashboard');
125131
expect(countOfDashboards).to.equal(0);
126132
});
127133

128134
it('is case insensitive', async function() {
129-
await PageObjects.dashboard.searchForDashboardWithName('two words');
130-
const countOfDashboards = await PageObjects.dashboard.getCountOfDashboardsInListingTable();
135+
await listingTable.searchForItemWithName('two words');
136+
const countOfDashboards = await listingTable.getItemsCount('dashboard');
131137
expect(countOfDashboards).to.equal(1);
132138
});
133139

134140
it('is using AND operator', async function() {
135-
await PageObjects.dashboard.searchForDashboardWithName('three words');
136-
const countOfDashboards = await PageObjects.dashboard.getCountOfDashboardsInListingTable();
141+
await listingTable.searchForItemWithName('three words');
142+
const countOfDashboards = await listingTable.getItemsCount('dashboard');
137143
expect(countOfDashboards).to.equal(0);
138144
});
139145
});
@@ -176,7 +182,7 @@ export default function({ getService, getPageObjects }) {
176182
});
177183

178184
it('preloads search filter bar when there is no match', async function() {
179-
const searchFilter = await PageObjects.dashboard.getSearchFilterValue();
185+
const searchFilter = await listingTable.getSearchFilterValue();
180186
expect(searchFilter).to.equal('"nodashboardsnamedme"');
181187
});
182188

@@ -196,7 +202,7 @@ export default function({ getService, getPageObjects }) {
196202
});
197203

198204
it('preloads search filter bar when there is more than one match', async function() {
199-
const searchFilter = await PageObjects.dashboard.getSearchFilterValue();
205+
const searchFilter = await listingTable.getSearchFilterValue();
200206
expect(searchFilter).to.equal('"two words"');
201207
});
202208

test/functional/apps/dashboard/dashboard_save.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@
1919

2020
import expect from '@kbn/expect';
2121

22-
export default function({ getPageObjects }) {
22+
export default function({ getPageObjects, getService }) {
2323
const PageObjects = getPageObjects(['dashboard', 'header']);
24+
const listingTable = getService('listingTable');
2425

2526
describe('dashboard save', function describeIndexTests() {
2627
this.tags('smoke');
@@ -47,8 +48,10 @@ export default function({ getPageObjects }) {
4748

4849
it('does not save on reject confirmation', async function() {
4950
await PageObjects.dashboard.cancelSave();
51+
await PageObjects.dashboard.gotoDashboardLandingPage();
5052

51-
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(
53+
const countOfDashboards = await listingTable.searchAndGetItemsCount(
54+
'dashboard',
5255
dashboardName
5356
);
5457
expect(countOfDashboards).to.equal(1);
@@ -68,15 +71,17 @@ export default function({ getPageObjects }) {
6871
// wait till it finishes reloading or it might reload the url after simulating the
6972
// dashboard landing page click.
7073
await PageObjects.header.waitUntilLoadingHasFinished();
74+
await PageObjects.dashboard.gotoDashboardLandingPage();
7175

72-
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(
76+
const countOfDashboards = await listingTable.searchAndGetItemsCount(
77+
'dashboard',
7378
dashboardName
7479
);
7580
expect(countOfDashboards).to.equal(2);
7681
});
7782

7883
it('Does not warn when you save an existing dashboard with the title it already has, and that title is a duplicate', async function() {
79-
await PageObjects.dashboard.selectDashboard(dashboardName);
84+
await listingTable.clickItemLink('dashboard', dashboardName);
8085
await PageObjects.header.awaitGlobalLoadingIndicatorHidden();
8186
await PageObjects.dashboard.switchToEditMode();
8287
await PageObjects.dashboard.saveDashboard(dashboardName);
@@ -121,8 +126,10 @@ export default function({ getPageObjects }) {
121126
// wait till it finishes reloading or it might reload the url after simulating the
122127
// dashboard landing page click.
123128
await PageObjects.header.waitUntilLoadingHasFinished();
129+
await PageObjects.dashboard.gotoDashboardLandingPage();
124130

125-
const countOfDashboards = await PageObjects.dashboard.getDashboardCountWithName(
131+
const countOfDashboards = await listingTable.searchAndGetItemsCount(
132+
'dashboard',
126133
dashboardNameEnterKey
127134
);
128135
expect(countOfDashboards).to.equal(1);

test/functional/apps/dashboard/dashboard_snapshots.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import expect from '@kbn/expect';
2121

2222
export default function({ getService, getPageObjects, updateBaselines }) {
23-
const PageObjects = getPageObjects(['dashboard', 'header', 'visualize', 'common']);
23+
const PageObjects = getPageObjects(['dashboard', 'header', 'visualize', 'common', 'timePicker']);
2424
const screenshot = getService('screenshots');
2525
const browser = getService('browser');
2626
const esArchiver = getService('esArchiver');
@@ -48,7 +48,7 @@ export default function({ getService, getPageObjects, updateBaselines }) {
4848
it('compare TSVB snapshot', async () => {
4949
await PageObjects.dashboard.gotoDashboardLandingPage();
5050
await PageObjects.dashboard.clickNewDashboard();
51-
await PageObjects.dashboard.setTimepickerInLogstashDataRange();
51+
await PageObjects.timePicker.setLogstashDataRange();
5252
await dashboardAddPanel.addVisualization('Rendering Test: tsvb-ts');
5353
await PageObjects.common.closeToast();
5454

@@ -71,7 +71,7 @@ export default function({ getService, getPageObjects, updateBaselines }) {
7171
it('compare area chart snapshot', async () => {
7272
await PageObjects.dashboard.gotoDashboardLandingPage();
7373
await PageObjects.dashboard.clickNewDashboard();
74-
await PageObjects.dashboard.setTimepickerInLogstashDataRange();
74+
await PageObjects.timePicker.setLogstashDataRange();
7575
await dashboardAddPanel.addVisualization('Rendering Test: area with not filter');
7676
await PageObjects.common.closeToast();
7777

test/functional/apps/dashboard/dashboard_state.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export default function({ getService, getPageObjects }) {
3434
'discover',
3535
'tileMap',
3636
'visChart',
37+
'timePicker',
3738
]);
3839
const testSubjects = getService('testSubjects');
3940
const browser = getService('browser');
@@ -58,7 +59,7 @@ export default function({ getService, getPageObjects }) {
5859
await PageObjects.dashboard.gotoDashboardLandingPage();
5960

6061
await PageObjects.dashboard.clickNewDashboard();
61-
await PageObjects.dashboard.setTimepickerInHistoricalDataRange();
62+
await PageObjects.timePicker.setHistoricalDataRange();
6263

6364
await dashboardAddPanel.addVisualization(AREA_CHART_VIS_NAME);
6465
await PageObjects.dashboard.saveDashboard('Overridden colors');
@@ -83,7 +84,7 @@ export default function({ getService, getPageObjects }) {
8384
await PageObjects.dashboard.gotoDashboardLandingPage();
8485

8586
await PageObjects.header.clickDiscover();
86-
await PageObjects.dashboard.setTimepickerInHistoricalDataRange();
87+
await PageObjects.timePicker.setHistoricalDataRange();
8788
await PageObjects.discover.clickFieldListItemAdd('bytes');
8889
await PageObjects.discover.saveSearch('my search');
8990
await PageObjects.header.waitUntilLoadingHasFinished();
@@ -147,7 +148,7 @@ export default function({ getService, getPageObjects }) {
147148
await PageObjects.dashboard.gotoDashboardLandingPage();
148149

149150
await PageObjects.dashboard.clickNewDashboard();
150-
await PageObjects.dashboard.setTimepickerInHistoricalDataRange();
151+
await PageObjects.timePicker.setHistoricalDataRange();
151152

152153
await dashboardAddPanel.addVisualization('Visualization TileMap');
153154
await PageObjects.dashboard.saveDashboard('No local edits');

test/functional/apps/dashboard/dashboard_time_picker.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export default function({ getService, getPageObjects }) {
4444
await PageObjects.dashboard.addVisualizations([PIE_CHART_VIS_NAME]);
4545
await pieChart.expectPieSliceCount(0);
4646

47-
await PageObjects.dashboard.setTimepickerInHistoricalDataRange();
47+
await PageObjects.timePicker.setHistoricalDataRange();
4848
await pieChart.expectPieSliceCount(10);
4949
});
5050

@@ -95,7 +95,7 @@ export default function({ getService, getPageObjects }) {
9595
await PageObjects.dashboard.gotoDashboardLandingPage();
9696
await PageObjects.dashboard.clickNewDashboard();
9797
await PageObjects.dashboard.addVisualizations([PIE_CHART_VIS_NAME]);
98-
// Same date range as `setTimepickerInHistoricalDataRange`
98+
// Same date range as `timePicker.setHistoricalDataRange()`
9999
await PageObjects.timePicker.setAbsoluteRange(
100100
'2015-09-19 06:31:44.000',
101101
'2015-09-23 18:31:44.000'

0 commit comments

Comments
 (0)