mirror of
https://github.com/elastic/kibana.git
synced 2025-04-25 10:23:14 -04:00
125 lines
4.9 KiB
JavaScript
125 lines
4.9 KiB
JavaScript
import expect from 'expect.js';
|
|
|
|
export default function ({ getService, getPageObjects }) {
|
|
const log = getService('log');
|
|
const retry = getService('retry');
|
|
const filterBar = getService('filterBar');
|
|
const PageObjects = getPageObjects(['common', 'visualize', 'header']);
|
|
|
|
describe('visualize app', function describeIndexTests() {
|
|
const fromTime = '2015-09-19 06:31:44.000';
|
|
const toTime = '2015-09-23 18:31:44.000';
|
|
|
|
before(function () {
|
|
log.debug('navigateToApp visualize');
|
|
return PageObjects.common.navigateToUrl('visualize', 'new')
|
|
.then(function () {
|
|
log.debug('clickDataTable');
|
|
return PageObjects.visualize.clickDataTable();
|
|
})
|
|
.then(function clickNewSearch() {
|
|
log.debug('clickNewSearch');
|
|
return PageObjects.visualize.clickNewSearch();
|
|
})
|
|
.then(function setAbsoluteRange() {
|
|
log.debug('Set absolute time range from \"' + fromTime + '\" to \"' + toTime + '\"');
|
|
return PageObjects.header.setAbsoluteRange(fromTime, toTime);
|
|
})
|
|
.then(function clickBucket() {
|
|
log.debug('Bucket = Split Rows');
|
|
return PageObjects.visualize.clickBucket('Split Rows');
|
|
})
|
|
.then(function selectAggregation() {
|
|
log.debug('Aggregation = Histogram');
|
|
return PageObjects.visualize.selectAggregation('Histogram');
|
|
})
|
|
.then(function selectField() {
|
|
log.debug('Field = bytes');
|
|
return PageObjects.visualize.selectField('bytes');
|
|
})
|
|
.then(function setInterval() {
|
|
log.debug('Interval = 2000');
|
|
return PageObjects.visualize.setNumericInterval('2000');
|
|
})
|
|
.then(function clickGo() {
|
|
return PageObjects.visualize.clickGo();
|
|
})
|
|
.then(function () {
|
|
return PageObjects.header.waitUntilLoadingHasFinished();
|
|
});
|
|
});
|
|
|
|
describe('data table', function indexPatternCreation() {
|
|
const vizName1 = 'Visualization DataTable';
|
|
|
|
it('should be able to save and load', function () {
|
|
return PageObjects.visualize.saveVisualization(vizName1)
|
|
.then(() => {
|
|
return PageObjects.common.getBreadcrumbPageTitle();
|
|
})
|
|
.then(pageTitle => {
|
|
log.debug(`Save viz page title is ${pageTitle}`);
|
|
expect(pageTitle).to.contain(vizName1);
|
|
})
|
|
.then(function testVisualizeWaitForToastMessageGone() {
|
|
return PageObjects.header.waitForToastMessageGone();
|
|
})
|
|
.then(function () {
|
|
return PageObjects.visualize.loadSavedVisualization(vizName1);
|
|
})
|
|
.then(function () {
|
|
return PageObjects.visualize.waitForVisualization();
|
|
});
|
|
});
|
|
|
|
it('should display spy panel toggle button', async function () {
|
|
const spyToggleExists = await PageObjects.visualize.getSpyToggleExists();
|
|
expect(spyToggleExists).to.be(true);
|
|
});
|
|
|
|
it('should show correct data, take screenshot', function () {
|
|
const expectedChartData = [
|
|
'0B', '2,088', '1.953KB', '2,748', '3.906KB', '2,707', '5.859KB', '2,876', '7.813KB',
|
|
'2,863', '9.766KB', '147', '11.719KB', '148', '13.672KB', '129', '15.625KB', '161', '17.578KB', '137'
|
|
];
|
|
|
|
return retry.try(function () {
|
|
return PageObjects.visualize.getDataTableData()
|
|
.then(function showData(data) {
|
|
log.debug(data.split('\n'));
|
|
expect(data.split('\n')).to.eql(expectedChartData);
|
|
});
|
|
});
|
|
});
|
|
|
|
it('should show correct data for a data table with date histogram', async () => {
|
|
await PageObjects.common.navigateToUrl('visualize', 'new');
|
|
await PageObjects.visualize.clickDataTable();
|
|
await PageObjects.visualize.clickNewSearch();
|
|
await PageObjects.header.setAbsoluteRange(fromTime, toTime);
|
|
await PageObjects.visualize.clickBucket('Split Rows');
|
|
await PageObjects.visualize.selectAggregation('Date Histogram');
|
|
await PageObjects.visualize.selectField('@timestamp');
|
|
await PageObjects.visualize.setInterval('Daily');
|
|
await PageObjects.visualize.clickGo();
|
|
await PageObjects.header.waitUntilLoadingHasFinished();
|
|
const data = await PageObjects.visualize.getDataTableData();
|
|
expect(data.trim().split('\n')).to.be.eql([
|
|
'2015-09-20', '4,757',
|
|
'2015-09-21', '4,614',
|
|
'2015-09-22', '4,633',
|
|
]);
|
|
});
|
|
|
|
it('should correctly filter for applied time filter on the main timefield', async () => {
|
|
await filterBar.addFilter('@timestamp', 'is between', ['2015-09-19', '2015-09-21']);
|
|
await PageObjects.header.waitUntilLoadingHasFinished();
|
|
const data = await PageObjects.visualize.getDataTableData();
|
|
expect(data.trim().split('\n')).to.be.eql([
|
|
'2015-09-20', '4,757',
|
|
]);
|
|
});
|
|
|
|
});
|
|
});
|
|
}
|