@@ -73,7 +73,7 @@ import {
7373 triggerContractValidation ,
7474 validateDataContractInsideBundleTestSuites ,
7575 validateSecurityAndSLADetails ,
76- waitForDataContractExecution ,
76+ waitForContractExecutionWithFallback ,
7777} from '../../utils/dataContracts' ;
7878import {
7979 addOwner ,
@@ -143,7 +143,7 @@ test.describe('Data Contracts', () => {
143143 page,
144144 } ) => {
145145 // 12-min timeout so waitForDataContractExecution completes first.
146- test . setTimeout ( 720_000 ) ;
146+ test . setTimeout ( 900_000 ) ;
147147
148148 const testClassification = new ClassificationClass ( ) ;
149149 const testTag = new TagClass ( {
@@ -259,7 +259,7 @@ test.describe('Data Contracts', () => {
259259 await selectOption (
260260 page ,
261261 ruleLocator . locator ( '.rule--value .ant-select' ) ,
262- user . responseData . displayName ,
262+ user . getUserDisplayName ( ) ,
263263 true
264264 ) ;
265265 await page . getByRole ( 'button' , { name : 'Add New Rule' } ) . click ( ) ;
@@ -353,7 +353,7 @@ test.describe('Data Contracts', () => {
353353
354354 await addOwner ( {
355355 page,
356- owner : user . responseData . displayName ,
356+ owner : user . getUserDisplayName ( ) ,
357357 type : 'Users' ,
358358 endpoint : entity . endpoint ,
359359 dataTestId : 'data-assets-header' ,
@@ -473,6 +473,9 @@ test.describe('Data Contracts', () => {
473473 // save and trigger contract validation
474474 const response = await saveAndTriggerDataContractValidation ( page ) ;
475475
476+ // The test suite results may be available before the contract's latestResult is
477+ // updated. If waitForDataContractExecution times out, fall back to the DataQuality
478+ // page to verify the test suite ran successfully.
476479 if (
477480 typeof response === 'object' &&
478481 response !== null &&
@@ -481,13 +484,20 @@ test.describe('Data Contracts', () => {
481484 const { id : contractId } = response as { id : string } ;
482485
483486 if ( contractId ) {
484- await waitForDataContractExecution ( page , contractId ) ;
487+ const contractResultVisible =
488+ await waitForContractExecutionWithFallback (
489+ page ,
490+ contractId ,
491+ DATA_CONTRACT_DETAILS . name
492+ ) ;
493+
494+ if ( contractResultVisible ) {
495+ await expect (
496+ page . getByTestId ( 'data-contract-latest-result-btn' )
497+ ) . toBeVisible ( ) ;
498+ }
485499 }
486500 }
487-
488- await expect (
489- page . getByTestId ( 'data-contract-latest-result-btn' )
490- ) . toBeVisible ( ) ;
491501 } ) ;
492502
493503 await test . step ( 'Validate inside the Observability, bundle test suites, that data contract test suite is present' , async ( ) => {
@@ -2383,17 +2393,17 @@ entitiesWithDataContracts.forEach((EntityClass) => {
23832393
23842394 const searchUser = page . waitForResponse (
23852395 `/api/v1/search/query?q=*${ encodeURIComponent (
2386- adminUser . responseData . displayName
2396+ adminUser . getUserDisplayName ( )
23872397 ) } *`
23882398 ) ;
23892399 await page
23902400 . getByTestId ( 'searchbar' )
2391- . fill ( adminUser . responseData . displayName ) ;
2401+ . fill ( adminUser . getUserDisplayName ( ) ) ;
23922402 await searchUser ;
23932403
23942404 await page
23952405 . getByRole ( 'listitem' , {
2396- name : adminUser . responseData . displayName ,
2406+ name : adminUser . getUserDisplayName ( ) ,
23972407 } )
23982408 . click ( ) ;
23992409
0 commit comments