Adding sorting test to scripted fields in discover (#75520)

...sorting functional UI tests added.
This commit is contained in:
Rashmi Kulkarni 2020-08-24 15:28:36 -07:00 committed by GitHub
parent 90bd654d7e
commit eddd39a1c1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -165,6 +165,27 @@ export default function ({ getService, getPageObjects }) {
});
});
//add a test to sort numeric scripted field
it('should sort scripted field value in Discover', async function () {
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName}`);
// after the first click on the scripted field, it becomes secondary sort after time.
// click on the timestamp twice to make it be the secondary sort key.
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
await PageObjects.header.waitUntilLoadingHasFinished();
await retry.try(async function () {
const rowData = await PageObjects.discover.getDocTableIndex(1);
expect(rowData).to.be('Sep 17, 2015 @ 10:53:14.181\n-1');
});
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName}`);
await PageObjects.header.waitUntilLoadingHasFinished();
await retry.try(async function () {
const rowData = await PageObjects.discover.getDocTableIndex(1);
expect(rowData).to.be('Sep 17, 2015 @ 06:32:29.479\n20');
});
});
it('should filter by scripted field value in Discover', async function () {
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName);
await log.debug('filter by the first value (14) in the expanded scripted field list');
@ -252,6 +273,27 @@ export default function ({ getService, getPageObjects }) {
});
});
//add a test to sort string scripted field
it('should sort scripted field value in Discover', async function () {
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
// after the first click on the scripted field, it becomes secondary sort after time.
// click on the timestamp twice to make it be the secondary sort key.
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
await PageObjects.header.waitUntilLoadingHasFinished();
await retry.try(async function () {
const rowData = await PageObjects.discover.getDocTableIndex(1);
expect(rowData).to.be('Sep 17, 2015 @ 09:48:40.594\nbad');
});
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
await PageObjects.header.waitUntilLoadingHasFinished();
await retry.try(async function () {
const rowData = await PageObjects.discover.getDocTableIndex(1);
expect(rowData).to.be('Sep 17, 2015 @ 06:32:29.479\ngood');
});
});
it('should filter by scripted field value in Discover', async function () {
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
await log.debug('filter by "bad" in the expanded scripted field list');
@ -330,6 +372,28 @@ export default function ({ getService, getPageObjects }) {
await filterBar.removeAllFilters();
});
//add a test to sort boolean
//existing bug: https://github.com/elastic/kibana/issues/75519 hence the issue is skipped.
it.skip('should sort scripted field value in Discover', async function () {
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
// after the first click on the scripted field, it becomes secondary sort after time.
// click on the timestamp twice to make it be the secondary sort key.
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
await PageObjects.header.waitUntilLoadingHasFinished();
await retry.try(async function () {
const rowData = await PageObjects.discover.getDocTableIndex(1);
expect(rowData).to.be('updateExpectedResultHere\ntrue');
});
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
await PageObjects.header.waitUntilLoadingHasFinished();
await retry.try(async function () {
const rowData = await PageObjects.discover.getDocTableIndex(1);
expect(rowData).to.be('updateExpectedResultHere\nfalse');
});
});
it('should visualize scripted field in vertical bar chart', async function () {
await PageObjects.discover.clickFieldListItemVisualize(scriptedPainlessFieldName2);
await PageObjects.header.waitUntilLoadingHasFinished();
@ -384,6 +448,28 @@ export default function ({ getService, getPageObjects }) {
});
});
//add a test to sort date scripted field
//https://github.com/elastic/kibana/issues/75711
it.skip('should sort scripted field value in Discover', async function () {
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
// after the first click on the scripted field, it becomes secondary sort after time.
// click on the timestamp twice to make it be the secondary sort key.
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
await PageObjects.header.waitUntilLoadingHasFinished();
await retry.try(async function () {
const rowData = await PageObjects.discover.getDocTableIndex(1);
expect(rowData).to.be('updateExpectedResultHere\n2015-09-18 07:00');
});
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
await PageObjects.header.waitUntilLoadingHasFinished();
await retry.try(async function () {
const rowData = await PageObjects.discover.getDocTableIndex(1);
expect(rowData).to.be('updateExpectedResultHere\n2015-09-18 07:00');
});
});
it('should filter by scripted field value in Discover', async function () {
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
await log.debug('filter by "Sep 17, 2015 @ 23:00" in the expanded scripted field list');