@@ -11,24 +11,30 @@ import type { RawRule } from '@kbn/alerting-plugin/server/types';
1111import { ALERTING_CASES_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server' ;
1212import { Spaces } from '../../../scenarios' ;
1313import type { FtrProviderContext } from '../../../../common/ftr_provider_context' ;
14- import { getUrlPrefix , getTestRuleData , ObjectRemover , checkAAD } from '../../../../common/lib' ;
14+ import {
15+ getUrlPrefix ,
16+ getTestRuleData ,
17+ ObjectRemover ,
18+ checkAAD ,
19+ getEventLog ,
20+ } from '../../../../common/lib' ;
1521
1622/** Simulates 7.x documents where lastRun.outcomeMsg was stored as a string. */
1723const LEGACY_OUTCOME_MSG = 'legacy outcome message string' ;
1824
1925export default function lastRunOutcomeMsgMigrationTests ( { getService } : FtrProviderContext ) {
2026 const es = getService ( 'es' ) ;
2127 const supertest = getService ( 'supertest' ) ;
28+ const retry = getService ( 'retry' ) ;
2229
23- // FLAKY: https://github.com/elastic/kibana/issues/259634
24- describe . skip ( 'lastRun outcomeMsg migration' , ( ) => {
30+ describe ( 'lastRun outcomeMsg migration' , ( ) => {
2531 const objectRemover = new ObjectRemover ( supertest ) ;
2632
2733 afterEach ( async ( ) => {
2834 await objectRemover . removeAll ( ) ;
2935 } ) ;
3036
31- async function getAlertFromEs ( ruleId : string ) : Promise < RawRule > {
37+ async function getRuleFromEs ( ruleId : string ) : Promise < RawRule > {
3238 const response = await es . get < { alert : RawRule } > (
3339 {
3440 index : ALERTING_CASES_SAVED_OBJECT_INDEX ,
@@ -67,11 +73,13 @@ export default function lastRunOutcomeMsgMigrationTests({ getService }: FtrProvi
6773 } )
6874 )
6975 . expect ( 200 ) ;
76+ // Wait for rule execution to complete to avoid race conditions with injectLegacyStringOutcomeMsg()
77+ await waitForEventLogDocs ( createdRule . id , new Map ( ) ) ;
7078 objectRemover . add ( Spaces . space1 . id , createdRule . id , 'rule' , 'alerting' ) ;
7179
7280 await injectLegacyStringOutcomeMsg ( createdRule . id ) ;
7381
74- const beforeBulk = await getAlertFromEs ( createdRule . id ) ;
82+ const beforeBulk = await getRuleFromEs ( createdRule . id ) ;
7583 expect ( ( beforeBulk . lastRun as { outcomeMsg ?: unknown } | undefined ) ?. outcomeMsg ) . to . eql (
7684 LEGACY_OUTCOME_MSG
7785 ) ;
@@ -84,7 +92,7 @@ export default function lastRunOutcomeMsgMigrationTests({ getService }: FtrProvi
8492 } )
8593 . expect ( 200 ) ;
8694
87- const afterBulk = await getAlertFromEs ( createdRule . id ) ;
95+ const afterBulk = await getRuleFromEs ( createdRule . id ) ;
8896 expect ( afterBulk . lastRun ?. outcomeMsg ) . to . eql ( [ LEGACY_OUTCOME_MSG ] ) ;
8997 expect ( afterBulk . enabled ) . to . eql ( false ) ;
9098
@@ -118,7 +126,7 @@ export default function lastRunOutcomeMsgMigrationTests({ getService }: FtrProvi
118126
119127 await injectLegacyStringOutcomeMsg ( createdRule . id ) ;
120128
121- const beforeBulk = await getAlertFromEs ( createdRule . id ) ;
129+ const beforeBulk = await getRuleFromEs ( createdRule . id ) ;
122130 expect ( ( beforeBulk . lastRun as { outcomeMsg ?: unknown } | undefined ) ?. outcomeMsg ) . to . eql (
123131 LEGACY_OUTCOME_MSG
124132 ) ;
@@ -131,7 +139,7 @@ export default function lastRunOutcomeMsgMigrationTests({ getService }: FtrProvi
131139 } )
132140 . expect ( 200 ) ;
133141
134- const afterBulk = await getAlertFromEs ( createdRule . id ) ;
142+ const afterBulk = await getRuleFromEs ( createdRule . id ) ;
135143 expect ( afterBulk . lastRun ?. outcomeMsg ) . to . eql ( [ LEGACY_OUTCOME_MSG ] ) ;
136144 expect ( afterBulk . enabled ) . to . eql ( true ) ;
137145
@@ -150,4 +158,20 @@ export default function lastRunOutcomeMsgMigrationTests({ getService }: FtrProvi
150158 } ) ;
151159 } ) ;
152160 } ) ;
161+
162+ async function waitForEventLogDocs (
163+ id : string ,
164+ actions : Map < string , { gte : number } | { equal : number } >
165+ ) {
166+ return await retry . try ( async ( ) => {
167+ return await getEventLog ( {
168+ getService,
169+ spaceId : Spaces . space1 . id ,
170+ type : 'alert' ,
171+ id,
172+ provider : 'alerting' ,
173+ actions,
174+ } ) ;
175+ } ) ;
176+ }
153177}
0 commit comments