Skip to content

Commit 549d7a2

Browse files
committed
refactor: use different url and hash for validation in generateValidProposalFormFields
1 parent adc750a commit 549d7a2

File tree

2 files changed

+58
-42
lines changed

2 files changed

+58
-42
lines changed

tests/govtool-frontend/playwright/lib/pages/proposalSubmissionPage.ts

Lines changed: 45 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
uploadScriptAndGenerateUrl,
1111
} from "@helpers/metadata";
1212
import { extractProposalIdFromUrl } from "@helpers/string";
13-
import { invalid } from "@mock/index";
13+
import { invalid, valid } from "@mock/index";
1414
import { Download, Locator, Page, expect } from "@playwright/test";
1515
import metadataBucketService from "@services/metadataBucketService";
1616
import {
@@ -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();

tests/govtool-frontend/playwright/tests/7-proposal-submission/proposalSubmission.loggedin.spec.ts

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ test.describe("Proposal created logged state", () => {
6464
await ShelleyWallet.generate()
6565
).rewardAddressBech32(environments.networkId);
6666
const formFields: ProposalCreateRequest =
67-
await proposalSubmissionPage.generateValidProposalFormFields(
68-
type,
69-
false,
70-
rewardAddressBech32
71-
);
67+
await proposalSubmissionPage.generateValidProposalFormFields({
68+
proposalType: type,
69+
receivingAddress: rewardAddressBech32,
70+
forValidation: true,
71+
});
7272
await proposalSubmissionPage.validateForm(formFields);
7373
}
7474

@@ -141,11 +141,10 @@ test.describe("Proposal created logged state", () => {
141141
wallet
142142
).rewardAddressBech32(environments.networkId);
143143
const proposal: ProposalCreateRequest =
144-
await proposalSubmissionPage.generateValidProposalFormFields(
145-
type,
146-
false,
147-
stakeAddressBech32
148-
);
144+
await proposalSubmissionPage.generateValidProposalFormFields({
145+
proposalType: type,
146+
receivingAddress: stakeAddressBech32,
147+
});
149148

150149
await proposalSubmissionPage.fillupForm(proposal);
151150
await proposalSubmissionPage.continueBtn.click();
@@ -195,11 +194,10 @@ test.describe("Proposal created logged state", () => {
195194
proposal01Wallet
196195
).rewardAddressBech32(environments.networkId);
197196
const proposal: ProposalCreateRequest =
198-
await proposalSubmissionPage.generateValidProposalFormFields(
199-
type,
200-
false,
201-
rewardAddressBech32
202-
);
197+
await proposalSubmissionPage.generateValidProposalFormFields({
198+
proposalType: type,
199+
receivingAddress: rewardAddressBech32,
200+
});
203201

204202
await proposalSubmissionPage.fillupForm(proposal);
205203
await proposalSubmissionPage.continueBtn.click();

0 commit comments

Comments
 (0)