Skip to content

Commit 0097123

Browse files
Adding sorting test to scripted fields in discover (#75520) (#75824)
...sorting functional UI tests added.
1 parent 5830101 commit 0097123

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

test/functional/apps/management/_scripted_fields.js

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,27 @@ export default function ({ getService, getPageObjects }) {
165165
});
166166
});
167167

168+
//add a test to sort numeric scripted field
169+
it('should sort scripted field value in Discover', async function () {
170+
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName}`);
171+
// after the first click on the scripted field, it becomes secondary sort after time.
172+
// click on the timestamp twice to make it be the secondary sort key.
173+
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
174+
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
175+
await PageObjects.header.waitUntilLoadingHasFinished();
176+
await retry.try(async function () {
177+
const rowData = await PageObjects.discover.getDocTableIndex(1);
178+
expect(rowData).to.be('Sep 17, 2015 @ 10:53:14.181\n-1');
179+
});
180+
181+
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName}`);
182+
await PageObjects.header.waitUntilLoadingHasFinished();
183+
await retry.try(async function () {
184+
const rowData = await PageObjects.discover.getDocTableIndex(1);
185+
expect(rowData).to.be('Sep 17, 2015 @ 06:32:29.479\n20');
186+
});
187+
});
188+
168189
it('should filter by scripted field value in Discover', async function () {
169190
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName);
170191
await log.debug('filter by the first value (14) in the expanded scripted field list');
@@ -252,6 +273,27 @@ export default function ({ getService, getPageObjects }) {
252273
});
253274
});
254275

276+
//add a test to sort string scripted field
277+
it('should sort scripted field value in Discover', async function () {
278+
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
279+
// after the first click on the scripted field, it becomes secondary sort after time.
280+
// click on the timestamp twice to make it be the secondary sort key.
281+
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
282+
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
283+
await PageObjects.header.waitUntilLoadingHasFinished();
284+
await retry.try(async function () {
285+
const rowData = await PageObjects.discover.getDocTableIndex(1);
286+
expect(rowData).to.be('Sep 17, 2015 @ 09:48:40.594\nbad');
287+
});
288+
289+
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
290+
await PageObjects.header.waitUntilLoadingHasFinished();
291+
await retry.try(async function () {
292+
const rowData = await PageObjects.discover.getDocTableIndex(1);
293+
expect(rowData).to.be('Sep 17, 2015 @ 06:32:29.479\ngood');
294+
});
295+
});
296+
255297
it('should filter by scripted field value in Discover', async function () {
256298
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
257299
await log.debug('filter by "bad" in the expanded scripted field list');
@@ -330,6 +372,28 @@ export default function ({ getService, getPageObjects }) {
330372
await filterBar.removeAllFilters();
331373
});
332374

375+
//add a test to sort boolean
376+
//existing bug: https://github.com/elastic/kibana/issues/75519 hence the issue is skipped.
377+
it.skip('should sort scripted field value in Discover', async function () {
378+
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
379+
// after the first click on the scripted field, it becomes secondary sort after time.
380+
// click on the timestamp twice to make it be the secondary sort key.
381+
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
382+
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
383+
await PageObjects.header.waitUntilLoadingHasFinished();
384+
await retry.try(async function () {
385+
const rowData = await PageObjects.discover.getDocTableIndex(1);
386+
expect(rowData).to.be('updateExpectedResultHere\ntrue');
387+
});
388+
389+
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
390+
await PageObjects.header.waitUntilLoadingHasFinished();
391+
await retry.try(async function () {
392+
const rowData = await PageObjects.discover.getDocTableIndex(1);
393+
expect(rowData).to.be('updateExpectedResultHere\nfalse');
394+
});
395+
});
396+
333397
it('should visualize scripted field in vertical bar chart', async function () {
334398
await PageObjects.discover.clickFieldListItemVisualize(scriptedPainlessFieldName2);
335399
await PageObjects.header.waitUntilLoadingHasFinished();
@@ -384,6 +448,28 @@ export default function ({ getService, getPageObjects }) {
384448
});
385449
});
386450

451+
//add a test to sort date scripted field
452+
//https://github.com/elastic/kibana/issues/75711
453+
it.skip('should sort scripted field value in Discover', async function () {
454+
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
455+
// after the first click on the scripted field, it becomes secondary sort after time.
456+
// click on the timestamp twice to make it be the secondary sort key.
457+
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
458+
await testSubjects.click('docTableHeaderFieldSort_@timestamp');
459+
await PageObjects.header.waitUntilLoadingHasFinished();
460+
await retry.try(async function () {
461+
const rowData = await PageObjects.discover.getDocTableIndex(1);
462+
expect(rowData).to.be('updateExpectedResultHere\n2015-09-18 07:00');
463+
});
464+
465+
await testSubjects.click(`docTableHeaderFieldSort_${scriptedPainlessFieldName2}`);
466+
await PageObjects.header.waitUntilLoadingHasFinished();
467+
await retry.try(async function () {
468+
const rowData = await PageObjects.discover.getDocTableIndex(1);
469+
expect(rowData).to.be('updateExpectedResultHere\n2015-09-18 07:00');
470+
});
471+
});
472+
387473
it('should filter by scripted field value in Discover', async function () {
388474
await PageObjects.discover.clickFieldListItem(scriptedPainlessFieldName2);
389475
await log.debug('filter by "Sep 17, 2015 @ 23:00" in the expanded scripted field list');

0 commit comments

Comments
 (0)