Migrate management functional tests to use PageObjects.

This commit is contained in:
CJ Cenizal 2016-06-27 15:39:40 -07:00
parent 5ab2a102e8
commit 4cc868c932
6 changed files with 112 additions and 106 deletions

View file

@ -1,28 +1,29 @@
import expect from 'expect.js';
import {
bdd,
common,
settingsPage,
scenarioManager,
esClient
} from '../../../support';
var expect = require('expect.js');
import PageObjects from '../../../support/page_objects';
bdd.describe('user input reactions', function () {
bdd.beforeEach(function () {
// delete .kibana index and then wait for Kibana to re-create it
return esClient.deleteAndUpdateConfigDoc()
.then(function () {
return settingsPage.navigateTo();
return PageObjects.settings.navigateTo();
})
.then(function () {
return settingsPage.clickExistingData();
return PageObjects.settings.clickExistingData();
});
});
bdd.it('should hide time-based index pattern when time-based option is unchecked', function () {
var self = this;
return settingsPage.getTimeBasedEventsCheckbox()
return PageObjects.settings.getTimeBasedEventsCheckbox()
.then(function (selected) {
// uncheck the 'time-based events' checkbox
return selected.click();
@ -30,12 +31,12 @@ bdd.describe('user input reactions', function () {
// try to find the checkbox (this shouldn fail)
.then(function () {
var waitTime = 10000;
return settingsPage.getTimeBasedIndexPatternCheckbox(waitTime);
return PageObjects.settings.getTimeBasedIndexPatternCheckbox(waitTime);
})
.then(function () {
common.saveScreenshot('Settings-indices-hide-time-based-index-pattern');
PageObjects.common.saveScreenshot('Settings-indices-hide-time-based-index-pattern');
// we expect the promise above to fail
var handler = common.createErrorHandler(self);
var handler = PageObjects.common.createErrorHandler(self);
var msg = 'Found time based index pattern checkbox';
handler(msg);
})
@ -47,11 +48,11 @@ bdd.describe('user input reactions', function () {
bdd.it('should enable creation after selecting time field', function () {
// select a time field and check that Create button is enabled
return settingsPage.selectTimeFieldOption('@timestamp')
return PageObjects.settings.selectTimeFieldOption('@timestamp')
.then(function () {
return settingsPage.getCreateButton().isEnabled()
return PageObjects.settings.getCreateButton().isEnabled()
.then(function (enabled) {
common.saveScreenshot('Settings-indices-enable-creation');
PageObjects.common.saveScreenshot('Settings-indices-enable-creation');
expect(enabled).to.be.ok();
});
});

View file

@ -1,41 +1,42 @@
import expect from 'expect.js';
import {
bdd,
common,
remote,
scenarioManager,
settingsPage,
esClient
} from '../../../support';
var expect = require('expect.js');
import PageObjects from '../../../support/page_objects';
bdd.describe('creating and deleting default index', function describeIndexTests() {
bdd.before(function () {
// delete .kibana index and then wait for Kibana to re-create it
return esClient.deleteAndUpdateConfigDoc()
.then(function () {
return settingsPage.navigateTo();
return PageObjects.settings.navigateTo();
})
.then(function () {
return settingsPage.clickExistingData();
return PageObjects.settings.clickExistingData();
});
});
bdd.describe('index pattern creation', function indexPatternCreation() {
bdd.before(function () {
return settingsPage.createIndexPattern();
return PageObjects.settings.createIndexPattern();
});
bdd.it('should have index pattern in page header', function pageHeader() {
return settingsPage.getIndexPageHeading().getVisibleText()
return PageObjects.settings.getIndexPageHeading().getVisibleText()
.then(function (patternName) {
common.saveScreenshot('Settings-indices-new-index-pattern');
PageObjects.common.saveScreenshot('Settings-indices-new-index-pattern');
expect(patternName).to.be('logstash-*');
});
});
bdd.it('should have index pattern in url', function url() {
return common.try(function tryingForTime() {
return PageObjects.common.try(function tryingForTime() {
return remote.getCurrentUrl()
.then(function (currentUrl) {
expect(currentUrl).to.contain('logstash-*');
@ -44,9 +45,9 @@ bdd.describe('creating and deleting default index', function describeIndexTests(
});
bdd.it('should have expected table headers', function checkingHeader() {
return settingsPage.getTableHeader()
return PageObjects.settings.getTableHeader()
.then(function (headers) {
common.debug('header.length = ' + headers.length);
PageObjects.common.debug('header.length = ' + headers.length);
var expectedHeaders = [
'name',
'type',
@ -74,25 +75,25 @@ bdd.describe('creating and deleting default index', function describeIndexTests(
bdd.describe('index pattern deletion', function indexDelete() {
bdd.before(function () {
var expectedAlertText = 'Are you sure you want to remove this index pattern?';
return settingsPage.removeIndexPattern()
return PageObjects.settings.removeIndexPattern()
.then(function (alertText) {
common.saveScreenshot('Settings-indices-confirm-remove-index-pattern');
PageObjects.common.saveScreenshot('Settings-indices-confirm-remove-index-pattern');
expect(alertText).to.be(expectedAlertText);
});
});
bdd.it('should return to index pattern creation page', function returnToPage() {
return common.try(function tryingForTime() {
return settingsPage.getCreateButton();
return PageObjects.common.try(function tryingForTime() {
return PageObjects.settings.getCreateButton();
});
});
bdd.it('should remove index pattern from url', function indexNotInUrl() {
// give the url time to settle
return common.try(function tryingForTime() {
return PageObjects.common.try(function tryingForTime() {
return remote.getCurrentUrl()
.then(function (currentUrl) {
common.debug('currentUrl = ' + currentUrl);
PageObjects.common.debug('currentUrl = ' + currentUrl);
expect(currentUrl).to.not.contain('logstash-*');
});
});

View file

@ -1,28 +1,29 @@
import expect from 'expect.js';
import {
bdd,
common,
scenarioManager,
settingsPage,
esClient
} from '../../../support';
var expect = require('expect.js');
import PageObjects from '../../../support/page_objects';
bdd.describe('index result popularity', function describeIndexTests() {
bdd.before(function () {
// delete .kibana index and then wait for Kibana to re-create it
return esClient.deleteAndUpdateConfigDoc()
.then(function () {
return settingsPage.navigateTo();
return PageObjects.settings.navigateTo();
});
});
bdd.beforeEach(function be() {
return settingsPage.createIndexPattern();
return PageObjects.settings.createIndexPattern();
});
bdd.afterEach(function ae() {
return settingsPage.removeIndexPattern();
return PageObjects.settings.removeIndexPattern();
});
bdd.describe('change popularity', function indexPatternCreation() {
@ -31,78 +32,78 @@ bdd.describe('index result popularity', function describeIndexTests() {
// set the page size to All again, https://github.com/elastic/kibana/issues/5030
// TODO: remove this after issue #5030 is closed
function fix5030() {
return settingsPage.setPageSize('All')
return PageObjects.settings.setPageSize('All')
.then(function () {
return common.sleep(1000);
return PageObjects.common.sleep(1000);
});
}
bdd.beforeEach(function () {
// increase Popularity of geo.coordinates
return settingsPage.setPageSize('All')
return PageObjects.settings.setPageSize('All')
.then(function () {
return common.sleep(1000);
return PageObjects.common.sleep(1000);
})
.then(function openControlsByName() {
common.debug('Starting openControlsByName (' + fieldName + ')');
return settingsPage.openControlsByName(fieldName);
PageObjects.common.debug('Starting openControlsByName (' + fieldName + ')');
return PageObjects.settings.openControlsByName(fieldName);
})
.then(function increasePopularity() {
common.debug('increasePopularity');
return settingsPage.increasePopularity();
PageObjects.common.debug('increasePopularity');
return PageObjects.settings.increasePopularity();
});
});
bdd.afterEach(function () {
// Cancel saving the popularity change (we didn't make a change in this case, just checking the value)
return settingsPage.controlChangeCancel();
return PageObjects.settings.controlChangeCancel();
});
bdd.it('should update the popularity input', function () {
return settingsPage.getPopularity()
return PageObjects.settings.getPopularity()
.then(function (popularity) {
common.debug('popularity = ' + popularity);
PageObjects.common.debug('popularity = ' + popularity);
expect(popularity).to.be('1');
common.saveScreenshot('Settings-indices-result-popularity-updated');
PageObjects.common.saveScreenshot('Settings-indices-result-popularity-updated');
});
});
bdd.it('should be reset on cancel', function pageHeader() {
// Cancel saving the popularity change
return settingsPage.controlChangeCancel()
return PageObjects.settings.controlChangeCancel()
.then(function () {
return fix5030();
})
.then(function openControlsByName() {
return settingsPage.openControlsByName(fieldName);
return PageObjects.settings.openControlsByName(fieldName);
})
// check that its 0 (previous increase was cancelled)
.then(function getPopularity() {
return settingsPage.getPopularity();
return PageObjects.settings.getPopularity();
})
.then(function (popularity) {
common.debug('popularity = ' + popularity);
PageObjects.common.debug('popularity = ' + popularity);
expect(popularity).to.be('0');
});
});
bdd.it('can be saved', function pageHeader() {
// Saving the popularity change
return settingsPage.controlChangeSave()
return PageObjects.settings.controlChangeSave()
.then(function () {
return fix5030();
})
.then(function openControlsByName() {
return settingsPage.openControlsByName(fieldName);
return PageObjects.settings.openControlsByName(fieldName);
})
// check that its 0 (previous increase was cancelled)
.then(function getPopularity() {
return settingsPage.getPopularity();
return PageObjects.settings.getPopularity();
})
.then(function (popularity) {
common.debug('popularity = ' + popularity);
PageObjects.common.debug('popularity = ' + popularity);
expect(popularity).to.be('1');
common.saveScreenshot('Settings-indices-result-popularity-saved');
PageObjects.common.saveScreenshot('Settings-indices-result-popularity-saved');
});
});
}); // end 'change popularity'

View file

@ -1,13 +1,14 @@
import expect from 'expect.js';
import {
bdd,
common,
defaultTimeout,
settingsPage,
scenarioManager,
esClient
} from '../../../support';
var expect = require('expect.js');
import PageObjects from '../../../support/page_objects';
bdd.describe('index result field sort', function describeIndexTests() {
bdd.before(function () {
@ -20,55 +21,55 @@ bdd.describe('index result field sort', function describeIndexTests() {
first: '@message',
last: 'xss.raw',
selector: function () {
return settingsPage.getTableRow(0, 0).getVisibleText();
return PageObjects.settings.getTableRow(0, 0).getVisibleText();
}
}, {
heading: 'type',
first: '_source',
last: 'string',
selector: function () {
return settingsPage.getTableRow(0, 1).getVisibleText();
return PageObjects.settings.getTableRow(0, 1).getVisibleText();
}
}];
columns.forEach(function (col) {
bdd.describe('sort by heading - ' + col.heading, function indexPatternCreation() {
bdd.before(function () {
return settingsPage.navigateTo()
return PageObjects.settings.navigateTo()
.then(function () {
return settingsPage.clickExistingData();
return PageObjects.settings.clickExistingData();
});
});
bdd.beforeEach(function () {
return settingsPage.createIndexPattern();
return PageObjects.settings.createIndexPattern();
});
bdd.afterEach(function () {
return settingsPage.removeIndexPattern();
return PageObjects.settings.removeIndexPattern();
});
bdd.it('should sort ascending', function pageHeader() {
return settingsPage.sortBy(col.heading)
return PageObjects.settings.sortBy(col.heading)
.then(function getText() {
return col.selector();
})
.then(function (rowText) {
common.saveScreenshot(`Settings-indices-column-${col.heading}-sort-ascending`);
PageObjects.common.saveScreenshot(`Settings-indices-column-${col.heading}-sort-ascending`);
expect(rowText).to.be(col.first);
});
});
bdd.it('should sort descending', function pageHeader() {
return settingsPage.sortBy(col.heading)
return PageObjects.settings.sortBy(col.heading)
.then(function sortAgain() {
return settingsPage.sortBy(col.heading);
return PageObjects.settings.sortBy(col.heading);
})
.then(function getText() {
return col.selector();
})
.then(function (rowText) {
common.saveScreenshot(`Settings-indices-column-${col.heading}-sort-descending`);
PageObjects.common.saveScreenshot(`Settings-indices-column-${col.heading}-sort-descending`);
expect(rowText).to.be(col.last);
});
});
@ -82,19 +83,19 @@ bdd.describe('index result field sort', function describeIndexTests() {
var pages = [1, 2, 3, 4];
bdd.before(function () {
return settingsPage.navigateTo()
return PageObjects.settings.navigateTo()
.then(function () {
return settingsPage.createIndexPattern();
return PageObjects.settings.createIndexPattern();
});
});
bdd.after(function () {
return settingsPage.removeIndexPattern();
return PageObjects.settings.removeIndexPattern();
});
bdd.it('makelogs data should have expected number of fields', function () {
return common.try(function () {
return settingsPage.getFieldsTabCount()
return PageObjects.common.try(function () {
return PageObjects.settings.getFieldsTabCount()
.then(function (tabCount) {
expect(tabCount).to.be('' + expectedFieldCount);
});
@ -102,7 +103,7 @@ bdd.describe('index result field sort', function describeIndexTests() {
});
bdd.it('should have correct default page size selected', function () {
return settingsPage.getPageSize()
return PageObjects.settings.getPageSize()
.then(function (pageSize) {
expect(pageSize).to.be('' + expectedDefaultPageSize);
});
@ -112,22 +113,22 @@ bdd.describe('index result field sort', function describeIndexTests() {
var pageCount = Math.ceil(expectedFieldCount / expectedDefaultPageSize);
var chain = pages.reduce(function (chain, val) {
return chain.then(function () {
return settingsPage.goToPage(val)
return PageObjects.settings.goToPage(val)
.then(function () {
return common.sleep(1000);
return PageObjects.common.sleep(1000);
})
.then(function () {
return settingsPage.getPageFieldCount();
return PageObjects.settings.getPageFieldCount();
})
.then(function (pageCount) {
common.saveScreenshot('Settings-indices-paged');
PageObjects.common.saveScreenshot('Settings-indices-paged');
var expectedSize = (val < 4) ? expectedDefaultPageSize : expectedLastPageCount;
expect(pageCount.length).to.be(expectedSize);
});
});
}, Promise.resolve());
return chain.catch(common.createErrorHandler(this));
return chain.catch(PageObjects.common.createErrorHandler(this));
});
}); // end describe pagination
}); // end index result field sort

View file

@ -1,35 +1,36 @@
import expect from 'expect.js';
import {
bdd,
common,
scenarioManager,
settingsPage,
esClient
} from '../../../support';
var expect = require('expect.js');
import PageObjects from '../../../support/page_objects';
bdd.describe('initial state', function () {
bdd.before(function () {
// delete .kibana index and then wait for Kibana to re-create it
return esClient.deleteAndUpdateConfigDoc()
.then(function () {
return settingsPage.navigateTo();
return PageObjects.settings.navigateTo();
})
.then(function () {
return settingsPage.clickExistingData();
return PageObjects.settings.clickExistingData();
});
});
bdd.it('should load with time pattern checked', function () {
return settingsPage.getTimeBasedEventsCheckbox().isSelected()
return PageObjects.settings.getTimeBasedEventsCheckbox().isSelected()
.then(function (selected) {
common.saveScreenshot('Settings-initial-state');
PageObjects.common.saveScreenshot('Settings-initial-state');
expect(selected).to.be.ok();
});
});
bdd.it('should load with name pattern unchecked', function () {
return settingsPage.getTimeBasedIndexPatternCheckbox().isSelected()
return PageObjects.settings.getTimeBasedIndexPatternCheckbox().isSelected()
.then(function (selected) {
expect(selected).to.not.be.ok();
});
@ -38,22 +39,22 @@ bdd.describe('initial state', function () {
bdd.it('should contain default index pattern', function () {
var defaultPattern = 'logstash-*';
return settingsPage.getIndexPatternField().getProperty('value')
return PageObjects.settings.getIndexPatternField().getProperty('value')
.then(function (pattern) {
expect(pattern).to.be(defaultPattern);
});
});
bdd.it('should not select the time field', function () {
return settingsPage.getTimeFieldNameField().isSelected()
return PageObjects.settings.getTimeFieldNameField().isSelected()
.then(function (timeFieldIsSelected) {
common.debug('timeField isSelected = ' + timeFieldIsSelected);
PageObjects.common.debug('timeField isSelected = ' + timeFieldIsSelected);
expect(timeFieldIsSelected).to.not.be.ok();
});
});
bdd.it('should not be enable creation', function () {
return settingsPage.getCreateButton().isEnabled()
return PageObjects.settings.getCreateButton().isEnabled()
.then(function (enabled) {
expect(enabled).to.not.be.ok();
});

View file

@ -1,42 +1,43 @@
import expect from 'expect.js';
import {
bdd,
common,
settingsPage,
scenarioManager,
esClient
} from '../../../support';
var expect = require('expect.js');
import PageObjects from '../../../support/page_objects';
bdd.describe('creating and deleting default index', function describeIndexTests() {
bdd.before(function () {
// delete .kibana index and then wait for Kibana to re-create it
return esClient.deleteAndUpdateConfigDoc()
.then(function () {
return settingsPage.navigateTo();
return PageObjects.settings.navigateTo();
})
.then(function () {
return settingsPage.clickExistingData();
return PageObjects.settings.clickExistingData();
})
.then(function () {
return settingsPage.createIndexPattern();
return PageObjects.settings.createIndexPattern();
})
.then(function () {
return settingsPage.navigateTo();
return PageObjects.settings.navigateTo();
});
});
bdd.it('should allow setting advanced settings', function () {
return settingsPage.clickKibanaSettings()
return PageObjects.settings.clickKibanaSettings()
.then(function TestCallSetAdvancedSettingsForTimezone() {
common.saveScreenshot('Settings-advanced-tab');
common.debug('calling setAdvancedSetting');
return settingsPage.setAdvancedSettings('dateFormat:tz', 'America/Phoenix');
PageObjects.common.saveScreenshot('Settings-advanced-tab');
PageObjects.common.debug('calling setAdvancedSetting');
return PageObjects.settings.setAdvancedSettings('dateFormat:tz', 'America/Phoenix');
})
.then(function GetAdvancedSetting() {
common.saveScreenshot('Settings-set-timezone');
return settingsPage.getAdvancedSettings('dateFormat:tz');
PageObjects.common.saveScreenshot('Settings-set-timezone');
return PageObjects.settings.getAdvancedSettings('dateFormat:tz');
})
.then(function (advancedSetting) {
expect(advancedSetting).to.be('America/Phoenix');