@@ -374,25 +374,30 @@ export default class OutComesPage {
374374 }
375375
376376 async fetchOutcomeIdAndTitleFromNetwork (
377- governanceActionId : string ,
378- governanceActionTitle : string
379- ) {
377+ governanceActionId ? : string ,
378+ governanceActionTitle ? : string
379+ ) : Promise < { governanceActionId : string ; governanceActionTitle : string } > {
380380 let updatedGovernanceActionId = governanceActionId ;
381381 let updatedGovernanceActionTitle = governanceActionTitle ;
382+
382383 await this . page . route (
383384 "**/governance-actions?search=&filters=&sort=**" ,
384385 async ( route ) => {
385386 const response = await route . fetch ( ) ;
386387 const data : outcomeProposal [ ] = await response . json ( ) ;
387- if ( ! governanceActionId ) {
388- if ( data . length > 0 ) {
389- const randomIndexForId = Math . floor ( Math . random ( ) * data . length ) ;
390- updatedGovernanceActionId =
391- data [ randomIndexForId ] . tx_hash +
392- "#" +
393- data [ randomIndexForId ] . index ;
388+
389+ if ( ! updatedGovernanceActionId && data . length > 0 ) {
390+ const randomIndex = Math . floor ( Math . random ( ) * data . length ) ;
391+ updatedGovernanceActionId = `${ data [ randomIndex ] . tx_hash } #${ data [ randomIndex ] . index } ` ;
392+ }
393+
394+ if ( ! updatedGovernanceActionTitle ) {
395+ const itemWithTitle = data . find ( ( item ) => item . title != null ) ;
396+ if ( itemWithTitle ) {
397+ updatedGovernanceActionTitle = itemWithTitle . title ;
394398 }
395399 }
400+
396401 await route . fulfill ( {
397402 status : 200 ,
398403 contentType : "application/json" ,
@@ -410,31 +415,40 @@ export default class OutComesPage {
410415 await route . continue ( ) ;
411416 return ;
412417 }
418+
413419 const data : outcomeMetadata = await response . json ( ) ;
414- if ( ! governanceActionTitle && data . data . title != null ) {
420+ if ( ! updatedGovernanceActionTitle && data . data . title ) {
415421 updatedGovernanceActionTitle = data . data . title ;
416422 }
423+
417424 await route . fulfill ( {
418425 status : 200 ,
419426 contentType : "application/json" ,
420427 body : JSON . stringify ( data ) ,
421428 } ) ;
422429 } catch ( error ) {
430+ // Just return without handling the error
423431 return ;
424432 }
425433 }
426434 ) ;
427435
428- const responsePromise = this . page . waitForResponse (
436+ const actionsResponsePromise = this . page . waitForResponse (
429437 "**/governance-actions?search=&filters=&sort=**"
430438 ) ;
431- const metadataResponsePromise = this . page . waitForResponse (
432- "**/governance-actions/metadata?**"
433- ) ;
439+
434440
435441 await this . goto ( ) ;
436- await responsePromise ;
437- await metadataResponsePromise ;
442+ await actionsResponsePromise ;
443+
444+ const needMetadataForTitle = ! updatedGovernanceActionTitle ;
445+ const metadataResponsePromise = needMetadataForTitle
446+ ? this . page . waitForResponse ( "**/governance-actions/metadata?**" )
447+ : Promise . resolve ( null ) ;
448+ if ( needMetadataForTitle ) {
449+ await metadataResponsePromise ;
450+ }
451+
438452 return {
439453 governanceActionId : updatedGovernanceActionId ,
440454 governanceActionTitle : updatedGovernanceActionTitle ,
0 commit comments