@@ -10,7 +10,7 @@ import {
1010 uploadScriptAndGenerateUrl ,
1111} from "@helpers/metadata" ;
1212import { extractProposalIdFromUrl } from "@helpers/string" ;
13- import { invalid } from "@mock/index" ;
13+ import { invalid , valid } from "@mock/index" ;
1414import { Download , Locator , Page , expect } from "@playwright/test" ;
1515import metadataBucketService from "@services/metadataBucketService" ;
1616import {
@@ -366,12 +366,19 @@ export default class ProposalSubmissionPage {
366366 await expect ( this . continueBtn ) . toBeDisabled ( ) ;
367367 }
368368
369- async generateValidProposalFormFields (
370- proposalType : ProposalType ,
371- is_draft ?: boolean ,
372- receivingAddress ?: string ,
373- hasGuardrails : boolean = true
374- ) {
369+ async generateValidProposalFormFields ( {
370+ proposalType,
371+ is_draft,
372+ receivingAddress,
373+ hasGuardrails = true ,
374+ forValidation = false ,
375+ } : {
376+ proposalType : ProposalType ;
377+ is_draft ?: boolean ;
378+ receivingAddress ?: string ;
379+ hasGuardrails ?: boolean ;
380+ forValidation ?: boolean ;
381+ } ) {
375382 const proposal : ProposalCreateRequest = {
376383 prop_name : faker . lorem . sentence ( 6 ) ,
377384 prop_abstract : faker . lorem . words ( 5 ) ,
@@ -396,19 +403,28 @@ export default class ProposalSubmissionPage {
396403 . toString ( ) ) ;
397404 }
398405 if ( proposalType === ProposalType . updatesToTheConstitution ) {
399- proposal . prop_constitution_url =
400- environments . metadataBucketUrl + "/data.jsonId" ;
401-
402- if ( proposal . has_guardrails ) {
403- const url = await uploadScriptAndGenerateUrl ( guardrailsScript ) ;
404- proposal . prop_guardrails_script_url = url ;
405- proposal . prop_guardrails_script_hash = guardrailsScriptHash ;
406+ proposal . prop_constitution_url = forValidation
407+ ? valid . url ( )
408+ : environments . metadataBucketUrl + "/data.jsonId" ;
409+
410+ if ( hasGuardrails ) {
411+ if ( ! forValidation ) {
412+ const url = await uploadScriptAndGenerateUrl ( guardrailsScript ) ;
413+ proposal . prop_guardrails_script_url = url ;
414+ proposal . prop_guardrails_script_hash = guardrailsScriptHash ;
415+ } else {
416+ proposal . prop_guardrails_script_url = valid . url ( ) ;
417+ proposal . prop_guardrails_script_hash = faker . string . alphanumeric ( 64 ) ;
418+ }
406419 }
407420 }
408421 return proposal ;
409422 }
410423
411- generateInValidProposalFormFields ( proposalType : ProposalType ) {
424+ generateInValidProposalFormFields (
425+ proposalType : ProposalType ,
426+ hasGuardrails : boolean = true
427+ ) {
412428 const proposal : ProposalCreateRequest = {
413429 prop_name : invalid . proposalTitle ( ) ,
414430 prop_abstract : invalid . paragraph ( 2510 ) ,
@@ -422,6 +438,7 @@ export default class ProposalSubmissionPage {
422438 } ,
423439 ] ,
424440 gov_action_type_id : Object . values ( ProposalType ) . indexOf ( proposalType ) ,
441+ has_guardrails : hasGuardrails ,
425442 is_draft : false ,
426443 } ;
427444
@@ -450,11 +467,12 @@ export default class ProposalSubmissionPage {
450467 ) ;
451468
452469 const proposalRequest : ProposalCreateRequest =
453- await this . generateValidProposalFormFields (
454- ( await isBootStrapingPhase ( ) ) ? ProposalType . info : proposalType ,
455- false ,
456- receivingAddr
457- ) ;
470+ await this . generateValidProposalFormFields ( {
471+ proposalType : ( await isBootStrapingPhase ( ) )
472+ ? ProposalType . info
473+ : proposalType ,
474+ receivingAddress : receivingAddr ,
475+ } ) ;
458476 await this . fillupForm ( proposalRequest ) ;
459477 await this . continueBtn . click ( ) ;
460478 await this . submitBtn . click ( ) ;
@@ -470,13 +488,13 @@ export default class ProposalSubmissionPage {
470488 await this . goto ( ) ;
471489 await this . addLinkBtn . click ( ) ;
472490
473- const proposalFormValue = await this . generateValidProposalFormFields (
474- proposalType ,
475- true ,
476- ShelleyWallet . fromJson ( proposal04Wallet ) . rewardAddressBech32 (
477- environments . networkId
478- )
479- ) ;
491+ const proposalFormValue = await this . generateValidProposalFormFields ( {
492+ proposalType : proposalType ,
493+ is_draft : true ,
494+ receivingAddress : ShelleyWallet . fromJson (
495+ proposal04Wallet
496+ ) . rewardAddressBech32 ( environments . networkId ) ,
497+ } ) ;
480498 await this . fillupForm ( proposalFormValue ) ;
481499
482500 await this . saveDraftBtn . click ( ) ;
0 commit comments