Skip to content

Commit 8cf49bb

Browse files
wip- adding sorting mechanism to scipted fields in discover
1 parent 245c0a3 commit 8cf49bb

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

test/functional/apps/management/_scripted_fields.js

Lines changed: 64 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 @ 09:48:40.594\n20');
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\n-1');
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('Sep 18, 2015 @ 18:20:57.916\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('Sep 18, 2015 @ 18:20:57.916\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();

0 commit comments

Comments
 (0)