@@ -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