@@ -48,53 +48,59 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
48
48
let connectorId : string ;
49
49
50
50
const createSourceIndex = ( ) =>
51
- es . index ( {
52
- index : SOURCE_DATA_VIEW ,
53
- body : {
54
- settings : { number_of_shards : 1 } ,
55
- mappings : {
56
- properties : {
57
- '@timestamp' : { type : 'date' } ,
58
- message : { type : 'keyword' } ,
59
- } ,
51
+ retry . try ( ( ) =>
52
+ createIndex ( SOURCE_DATA_VIEW , {
53
+ '@timestamp' : { type : 'date' } ,
54
+ message : { type : 'keyword' } ,
55
+ } )
56
+ ) ;
57
+
58
+ const createOutputDataIndex = ( ) =>
59
+ retry . try ( ( ) =>
60
+ createIndex ( OUTPUT_DATA_VIEW , {
61
+ rule_id : { type : 'text' } ,
62
+ rule_name : { type : 'text' } ,
63
+ alert_id : { type : 'text' } ,
64
+ context_link : { type : 'text' } ,
65
+ } )
66
+ ) ;
67
+
68
+ async function createIndex ( index : string , properties : unknown ) {
69
+ try {
70
+ await es . index ( {
71
+ index,
72
+ body : {
73
+ settings : { number_of_shards : 1 } ,
74
+ mappings : { properties } ,
60
75
} ,
61
- } ,
62
- } ) ;
76
+ } ) ;
77
+ } catch ( e ) {
78
+ log . error ( `Failed to create index "${ index } " with error "${ e . message } "` ) ;
79
+ }
80
+ }
63
81
64
- const generateNewDocs = async ( docsNumber : number ) => {
82
+ async function generateNewDocs ( docsNumber : number , index = SOURCE_DATA_VIEW ) {
65
83
const mockMessages = Array . from ( { length : docsNumber } , ( _ , i ) => `msg-${ i } ` ) ;
66
84
const dateNow = new Date ( ) ;
67
85
const dateToSet = new Date ( dateNow ) ;
68
86
dateToSet . setMinutes ( dateNow . getMinutes ( ) - 10 ) ;
69
- for ( const message of mockMessages ) {
70
- await es . transport . request ( {
71
- path : `/${ SOURCE_DATA_VIEW } /_doc` ,
72
- method : 'POST' ,
73
- body : {
74
- '@timestamp' : dateToSet . toISOString ( ) ,
75
- message,
76
- } ,
77
- } ) ;
87
+ try {
88
+ await Promise . all (
89
+ mockMessages . map ( ( message ) =>
90
+ es . transport . request ( {
91
+ path : `/${ index } /_doc` ,
92
+ method : 'POST' ,
93
+ body : {
94
+ '@timestamp' : dateToSet . toISOString ( ) ,
95
+ message,
96
+ } ,
97
+ } )
98
+ )
99
+ ) ;
100
+ } catch ( e ) {
101
+ log . error ( `Failed to generate new docs in "${ index } " with error "${ e . message } "` ) ;
78
102
}
79
- } ;
80
-
81
- const createOutputDataIndex = ( ) =>
82
- es . index ( {
83
- index : OUTPUT_DATA_VIEW ,
84
- body : {
85
- settings : {
86
- number_of_shards : 1 ,
87
- } ,
88
- mappings : {
89
- properties : {
90
- rule_id : { type : 'text' } ,
91
- rule_name : { type : 'text' } ,
92
- alert_id : { type : 'text' } ,
93
- context_link : { type : 'text' } ,
94
- } ,
95
- } ,
96
- } ,
97
- } ) ;
103
+ }
98
104
99
105
const deleteAlerts = ( alertIds : string [ ] ) =>
100
106
asyncForEach ( alertIds , async ( alertId : string ) => {
@@ -216,7 +222,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
216
222
217
223
const openDiscoverAlertFlyout = async ( ) => {
218
224
await testSubjects . click ( 'discoverAlertsButton' ) ;
219
- await testSubjects . click ( 'discoverCreateAlertButton' ) ;
225
+ // Different create rule buttons in serverless
226
+ if ( await testSubjects . exists ( 'discoverCreateAlertButton' ) ) {
227
+ await testSubjects . click ( 'discoverCreateAlertButton' ) ;
228
+ } else {
229
+ await testSubjects . click ( 'discoverAppMenuCustomThresholdRule' ) ;
230
+ }
220
231
} ;
221
232
222
233
const openManagementAlertFlyout = async ( ) => {
@@ -366,8 +377,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
366
377
} ;
367
378
368
379
describe ( 'Search source Alert' , function ( ) {
369
- // see details: https://github.com/elastic/kibana/issues/193842
370
- this . tags ( [ 'failsOnMKI' , 'skipSvlOblt' ] ) ;
380
+ // Failing: https://github.com/elastic/kibana/issues/203045
381
+ this . tags ( [ 'skipSvlOblt' ] ) ;
382
+
371
383
before ( async ( ) => {
372
384
await security . testUser . setRoles ( [ 'discover_alert' ] ) ;
373
385
await PageObjects . svlCommonPage . loginAsAdmin ( ) ;
@@ -502,7 +514,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
502
514
503
515
await testSubjects . click ( 'thresholdPopover' ) ;
504
516
await testSubjects . setValue ( 'alertThresholdInput0' , '1' ) ;
505
- await testSubjects . click ( 'saveEditedRuleButton' ) ;
517
+
518
+ // Different save buttons in serverless
519
+ if ( await testSubjects . exists ( 'saveEditedRuleButton' ) ) {
520
+ await testSubjects . click ( 'saveEditedRuleButton' ) ;
521
+ } else {
522
+ await testSubjects . click ( 'rulePageFooterSaveButton' ) ;
523
+ }
506
524
await PageObjects . header . waitUntilLoadingHasFinished ( ) ;
507
525
508
526
await openAlertResults ( RULE_NAME ) ;
@@ -652,8 +670,15 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
652
670
await PageObjects . header . waitUntilLoadingHasFinished ( ) ;
653
671
654
672
await retry . waitFor ( 'rule name value is correct' , async ( ) => {
655
- await testSubjects . setValue ( 'ruleNameInput' , newAlert ) ;
656
- const ruleName = await testSubjects . getAttribute ( 'ruleNameInput' , 'value' ) ;
673
+ let ruleName ;
674
+ // Rule name input is different in serverless
675
+ if ( await testSubjects . exists ( 'ruleNameInput' ) ) {
676
+ await testSubjects . setValue ( 'ruleNameInput' , newAlert ) ;
677
+ ruleName = await testSubjects . getAttribute ( 'ruleNameInput' , 'value' ) ;
678
+ } else {
679
+ await testSubjects . setValue ( 'ruleDetailsNameInput' , newAlert ) ;
680
+ ruleName = await testSubjects . getAttribute ( 'ruleDetailsNameInput' , 'value' ) ;
681
+ }
657
682
return ruleName === newAlert ;
658
683
} ) ;
659
684
@@ -677,7 +702,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
677
702
await comboBox . set ( 'ruleFormConsumerSelect' , 'Stack Rules' ) ;
678
703
}
679
704
680
- await testSubjects . click ( 'saveRuleButton' ) ;
705
+ // Save rule button is different in serverless
706
+ if ( await testSubjects . exists ( 'saveRuleButton' ) ) {
707
+ await testSubjects . click ( 'saveRuleButton' ) ;
708
+ } else {
709
+ await testSubjects . click ( 'rulePageFooterSaveButton' ) ;
710
+ }
681
711
682
712
await retry . waitFor ( 'confirmation modal' , async ( ) => {
683
713
return await testSubjects . exists ( 'confirmModalConfirmButton' ) ;
0 commit comments