Changed more testSettings tests to BDD.

This commit is contained in:
LeeDr 2015-11-02 15:54:53 -06:00 committed by Joe Fleming
parent 22671d7a41
commit 5176ce0819
5 changed files with 218 additions and 6 deletions

View file

@ -0,0 +1,37 @@
define(function (require) {
var Common = require('../../../support/pages/Common');
var SettingsPage = require('../../../support/pages/SettingsPage');
var expect = require('intern/dojo/node!expect.js');
return function (bdd) {
bdd.describe('create button states', function () {
var common;
var settingsPage;
bdd.before(function () {
common = new Common(this.remote);
settingsPage = new SettingsPage(this.remote);
});
bdd.it('should not be initially enabled', function () {
return settingsPage.getCreateButton().isEnabled()
.then(function (enabled) {
expect(enabled).to.not.be.ok();
})
.catch(common.handleError(this));
});
bdd.it('should be enabled after selecting time field option', function () {
// select a time field and check that Create button is enabled
return settingsPage.selectTimeFieldOption('@timestamp')
.then(function () {
return settingsPage.getCreateButton().isEnabled()
.then(function (enabled) {
expect(enabled).to.be.ok();
});
})
.catch(common.handleError(this));
});
});
};
});

View file

@ -0,0 +1,124 @@
define(function (require) {
var Common = require('../../../support/pages/Common');
var SettingsPage = require('../../../support/pages/SettingsPage');
var expect = require('intern/dojo/node!expect.js');
var Promise = require('bluebird');
return function (bdd) {
bdd.describe('creating and deleting default index', function describeIndexTests() {
var common;
var settingsPage;
var remote;
var expectedAlertText = 'Are you sure you want to remove this index pattern?';
bdd.before(function () {
common = new Common(this.remote);
settingsPage = new SettingsPage(this.remote);
remote = this.remote;
});
function createIndex() {
return settingsPage.selectTimeFieldOption('@timestamp')
.then(function () {
return settingsPage.getCreateButton().click();
});
}
function removeIndex() {
return common.tryForTime(3000, function () {
// delete the index pattern -X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X
return settingsPage.clickDeletePattern();
})
.then(function () {
return common.tryForTime(3000, function () {
return remote.getAlertText()
.then(function (alertText) {
expect(alertText).to.be(expectedAlertText);
});
});
})
.then(function () {
return remote.acceptAlert();
});
}
bdd.describe('index pattern creation', function indexPatternCreation() {
bdd.beforeEach(function be() {
return createIndex();
});
bdd.afterEach(function ae() {
return removeIndex();
});
bdd.it('should have index pattern in page header', function pageHeader() {
return settingsPage.getIndexPageHeading().getVisibleText()
.then(function (patternName) {
expect(patternName).to.be('logstash-*');
})
.catch(common.handleError(this));
});
bdd.it('should have index pattern in url', function url() {
return common.tryForTime(5000, function () {
return remote.getCurrentUrl()
.then(function (currentUrl) {
expect(currentUrl).to.contain('logstash-*');
});
})
.catch(common.handleError(this));
});
bdd.it('should have expected table headers', function checkingHeader() {
return settingsPage.getTableHeader()
.then(function (headers) {
common.log('header.length = ' + headers.length);
var expectedHeaders = [
'name',
'type',
'format',
'analyzed',
'indexed',
'controls'
];
// 6 name type format analyzed indexed controls
expect(headers.length).to.be(expectedHeaders.length);
var comparedHeaders = headers.map(function compareHead(header, i) {
return header.getVisibleText()
.then(function (text) {
expect(text).to.be(expectedHeaders[i]);
});
});
return Promise.all(comparedHeaders);
})
.catch(common.handleError(this));
});
});
bdd.describe('index pattern deletion', function indexDelete() {
bdd.it('should return to index pattern creation page', function returnToPage() {
return common.tryForTime(5000, function () {
return settingsPage.getCreateButton();
})
.catch(common.handleError(this));
});
bdd.it('should remove index pattern from url', function indexNotInUrl() {
return common.tryForTime(3000, function () {
return remote.getCurrentUrl()
.then(function (currentUrl) {
common.log('currentUrl = ' + currentUrl);
expect(currentUrl).to.not.contain('logstash-*');
});
})
.catch(common.handleError(this));
});
});
});
};
});

View file

@ -0,0 +1,41 @@
define(function (require) {
var Common = require('../../../support/pages/Common');
var SettingsPage = require('../../../support/pages/SettingsPage');
var expect = require('intern/dojo/node!expect.js');
return function (bdd) {
bdd.describe('name is pattern checkbox', function () {
var common;
var settingsPage;
bdd.before(function () {
common = new Common(this.remote);
settingsPage = new SettingsPage(this.remote);
});
bdd.it('should be hidden with time based unchecked', function () {
var self = this;
return settingsPage.getTimeBasedEventsCheckbox()
.then(function (selected) {
// uncheck the 'time-based events' checkbox
return selected.click();
})
// try to find the name is pattern checkbox (shouldn't find it)
.then(function () {
return settingsPage.getNameIsPatternCheckbox();
})
.then(function () {
// we expect the promise above to fail
var handler = common.handleError(self);
handler(
'Did not expect to find the Name is Pattern checkbox when the TimeBasedEvents checkbox is unchecked'
);
})
.catch(function () {
// we expect this failure since the 'name is pattern' checkbox should be hidden
return;
});
});
});
};
});

View file

@ -4,18 +4,22 @@ define(function (require) {
var config = require('intern').config;
var url = require('intern/dojo/node!url');
var _ = require('intern/dojo/node!lodash');
var Common = require('../../../support/pages/Common');
var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenarioManager');
// var HeaderPage = require('../../../support/pages/HeaderPage');
// var pollUntil = require('intern/dojo/node!leadfoot/helpers/pollUntil');
var initialStateTest = require('./_initial_state');
var createButtonTest = require('./_create_button');
var namePatternCheckboxTest = require('./_name_pattern_checkbox');
var indexPatternCreateDeleteTest = require('./_index_pattern_create_delete');
// var indexPatternResultsSortTest = require('./_index_pattern_results_sort');
// var indexPatternPopularityTest = require('./_index_pattern_popularity');
bdd.describe('settings app', function () {
var common;
var scenarioManager;
var remote;
var expectedAlertText = 'Are you sure you want to remove this index pattern?';
// on setup, we create an settingsPage instance
// that we will use for all the tests
bdd.before(function () {
@ -25,6 +29,7 @@ define(function (require) {
});
bdd.beforeEach(function () {
common.log('running bdd.beforeEach');
// start each test with an empty kibana index
return scenarioManager.reload('emptyKibana')
// and load a minimal set of makelogs data
@ -57,7 +62,12 @@ define(function (require) {
return scenarioManager.unload('makelogs');
});
require('./_initial_state')(bdd);
initialStateTest(bdd);
createButtonTest(bdd);
namePatternCheckboxTest(bdd);
indexPatternCreateDeleteTest(bdd);
});
});

View file

@ -52,12 +52,12 @@ define(function (require) {
log('... sleep(' + sleepMilliseconds + ') start');
return Promise.resolve().delay(sleepMilliseconds)
.then(function () { log('... sleep(' + sleepMilliseconds + ') end'); })
.then(function () { log('... sleep(' + sleepMilliseconds + ') end'); });
},
handleError: function (testObj) {
var self = this;
testName = (testObj.parent) ? [testObj.parent.name, testObj.name].join('_') : testObj.name;
var testName = (testObj.parent) ? [testObj.parent.name, testObj.name].join('_') : testObj.name;
return function (reason) {
var now = Date.now();
@ -66,7 +66,7 @@ define(function (require) {
return self.saveScreenshot(filename)
.then(function () {
throw new Error(reason);
})
});
};
},