Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔍 Check transaction signer addresses in interactions tests #4704

Merged
merged 2 commits into from
Jan 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/ui/src/app/App.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ export const BuyMembershipHappy: Story = {
expect(await modal.findByText('Success'))
expect(modal.getByText(NEW_MEMBER_DATA.handle))

expect(args.onBuyMembership).toHaveBeenCalledWith({
expect(args.onBuyMembership).toHaveBeenCalledWith(bob.controllerAccount, {
rootAccount: alice.controllerAccount,
controllerAccount: bob.controllerAccount,
handle: NEW_MEMBER_DATA.handle,
Expand Down Expand Up @@ -435,7 +435,7 @@ export const BuyMembershipEmailSignup: Story = {
expect(await modal.findByText('Success'))
expect(modal.getByText(NEW_MEMBER_DATA.handle))

expect(args.onBuyMembership).toHaveBeenCalledWith({
expect(args.onBuyMembership).toHaveBeenCalledWith(bob.controllerAccount, {
rootAccount: alice.controllerAccount,
controllerAccount: bob.controllerAccount,
handle: NEW_MEMBER_DATA.handle,
Expand Down
56 changes: 31 additions & 25 deletions packages/ui/src/app/pages/Proposals/CurrentProposals.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ export const AddNewProposalHappy: Story = {
})

await step('Sign Create Proposal transaction', async () => {
expect(await modal.findByText('You intend to create a proposal.'))
expect(await modal.findByText('You intend to create a proposal.', undefined, { timeout: 2000 }))
await userEvent.click(modal.getByText('Sign transaction and Create'))
})

Expand All @@ -474,11 +474,16 @@ export const AddNewProposalHappy: Story = {
})

step('Transaction parameters', () => {
expect(args.onAddStakingAccountCandidate).toHaveBeenCalledWith(alice.id)
expect(args.onAddStakingAccountCandidate).toHaveBeenCalledWith(alice.controllerAccount, alice.id)

expect(args.onConfirmStakingAccount).toHaveBeenCalledWith(alice.id, alice.controllerAccount)
expect(args.onConfirmStakingAccount).toHaveBeenCalledWith(
alice.controllerAccount,
alice.id,
alice.controllerAccount
)

const [generalParameters] = args.onCreateProposal.mock.calls.at(-1)
const [signer, generalParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(signer).toBe(alice.controllerAccount)
expect(generalParameters).toEqual({
memberId: alice.id,
title: PROPOSAL_DATA.title,
Expand All @@ -488,8 +493,9 @@ export const AddNewProposalHappy: Story = {
})

const changeModeTxParams = args.onChangeThreadMode.mock.calls.at(-1)
expect(changeModeTxParams.length).toBe(3)
const [memberId, threadId, mode] = changeModeTxParams
expect(changeModeTxParams.length).toBe(4)
const [changeModeSigner, memberId, threadId, mode] = changeModeTxParams
expect(changeModeSigner).toBe(alice.controllerAccount)
expect(memberId).toBe(alice.id)
expect(typeof threadId).toBe('number')
expect(mode.toJSON()).toEqual({ closed: [] })
Expand Down Expand Up @@ -747,7 +753,7 @@ export const SpecificParametersSignal: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toHuman()).toEqual({ Signal: 'Lorem ipsum...' })
})
}),
Expand Down Expand Up @@ -775,7 +781,7 @@ export const SpecificParametersFundingRequest: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({
fundingRequest: [{ account: alice.controllerAccount, amount: 100_0000000000 }],
})
Expand Down Expand Up @@ -861,7 +867,7 @@ export const SpecificParametersMultipleFundingRequest: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({
fundingRequest: [
{ account: alice.controllerAccount, amount: 500_0000000000 },
Expand Down Expand Up @@ -898,7 +904,7 @@ export const SpecificParametersSetReferralCut: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({ setReferralCut: 100 })
})
}),
Expand Down Expand Up @@ -946,7 +952,7 @@ export const SpecificParametersDecreaseWorkingGroupLeadStake: Story = {

step('Transaction parameters', () => {
const leaderId = 10 // Set on the mock QN query
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({
decreaseWorkingGroupLeadStake: [leaderId, 500_0000000000, 'Forum'],
})
Expand Down Expand Up @@ -984,7 +990,7 @@ export const SpecificParametersTerminateWorkingGroupLead: Story = {

step('Transaction parameters', () => {
const leaderId = 10 // Set on the mock QN query
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({
terminateWorkingGroupLead: {
workerId: leaderId,
Expand Down Expand Up @@ -1049,7 +1055,7 @@ export const SpecificParametersCreateWorkingGroupLeadOpening: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const { description, ...data } = specificParameters.asCreateWorkingGroupLeadOpening.toJSON()

expect(data).toEqual({
Expand Down Expand Up @@ -1115,7 +1121,7 @@ export const SpecificParametersSetWorkingGroupLeadReward: Story = {

step('Transaction parameters', () => {
const leaderId = 10 // Set on the mock QN query
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({
setWorkingGroupLeadReward: [leaderId, 10_0000000000, 'Forum'],
})
Expand Down Expand Up @@ -1151,7 +1157,7 @@ export const SpecificParametersSetMaxValidatorCount: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({ setMaxValidatorCount: 10 })
})
}),
Expand All @@ -1171,7 +1177,7 @@ export const SpecificParametersCancelWorkingGroupLeadOpening: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({ cancelWorkingGroupLeadOpening: [12, 'Storage'] })
})
}),
Expand Down Expand Up @@ -1204,7 +1210,7 @@ export const SpecificParametersSetCouncilBudgetIncrement: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({ setCouncilBudgetIncrement: 500_0000000000 })
})
}),
Expand All @@ -1231,7 +1237,7 @@ export const SpecificParametersSetCouncilorReward: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({ setCouncilorReward: 10_0000000000 })
})
}),
Expand Down Expand Up @@ -1268,7 +1274,7 @@ export const SpecificParametersSetMembershipLeadInvitationQuota: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({ setMembershipLeadInvitationQuota: 3 })
})
}
Expand Down Expand Up @@ -1306,7 +1312,7 @@ export const SpecificParametersFillWorkingGroupLeadOpening: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({
fillWorkingGroupLeadOpening: {
applicationId: 15,
Expand Down Expand Up @@ -1347,7 +1353,7 @@ export const SpecificParametersSetInitialInvitationCount: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({ setInitialInvitationCount: 7 })
})
}),
Expand Down Expand Up @@ -1377,7 +1383,7 @@ export const SpecificParametersSetInitialInvitationBalance: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({ setInitialInvitationBalance: 7_0000000000 })
})
}),
Expand All @@ -1402,7 +1408,7 @@ export const SpecificParametersSetMembershipPrice: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({ setMembershipPrice: 8_0000000000 })
})
}),
Expand Down Expand Up @@ -1461,7 +1467,7 @@ export const SpecificParametersUpdateWorkingGroupBudget: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({
updateWorkingGroupBudget: [99_0000000000, 'Forum', 'Negative'],
})
Expand Down Expand Up @@ -1496,7 +1502,7 @@ export const SpecificParametersRuntimeUpgrade: Story = {
})

step('Transaction parameters', () => {
const [, specificParameters] = args.onCreateProposal.mock.calls.at(-1)
const [, , specificParameters] = args.onCreateProposal.mock.calls.at(-1)
expect(specificParameters.toJSON()).toEqual({ runtimeUpgrade: '0x' })
})
}),
Expand Down
32 changes: 28 additions & 4 deletions packages/ui/src/app/pages/Proposals/ProposalPreview.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,13 @@ export const TestVoteHappy: Story = {
)
expect(within(confirmText).getByText('Approve'))

expect(onVote).toHaveBeenLastCalledWith(activeMember.id, PROPOSAL_DATA.id, 'Approve', 'Some rationale')
expect(onVote).toHaveBeenLastCalledWith(
activeMember.controllerAccount,
activeMember.id,
PROPOSAL_DATA.id,
'Approve',
'Some rationale'
)

await userEvent.click(modal.getByText('Back to proposals'))
})
Expand Down Expand Up @@ -502,7 +508,13 @@ export const TestVoteHappy: Story = {
)
expect(within(confirmText).getByText('Reject'))

expect(onVote).toHaveBeenLastCalledWith(activeMember.id, PROPOSAL_DATA.id, 'Reject', 'Some rationale')
expect(onVote).toHaveBeenLastCalledWith(
activeMember.controllerAccount,
activeMember.id,
PROPOSAL_DATA.id,
'Reject',
'Some rationale'
)

await userEvent.click(modal.getByText('Back to proposals'))
})
Expand Down Expand Up @@ -538,7 +550,13 @@ export const TestVoteHappy: Story = {
)
expect(within(confirmText).getByText('Slash'))

expect(onVote).toHaveBeenLastCalledWith(activeMember.id, PROPOSAL_DATA.id, 'Slash', 'Some rationale')
expect(onVote).toHaveBeenLastCalledWith(
activeMember.controllerAccount,
activeMember.id,
PROPOSAL_DATA.id,
'Slash',
'Some rationale'
)

await userEvent.click(modal.getByText('Back to proposals'))
})
Expand Down Expand Up @@ -566,7 +584,13 @@ export const TestVoteHappy: Story = {
)
expect(within(confirmText).getByText('Abstain'))

expect(onVote).toHaveBeenLastCalledWith(activeMember.id, PROPOSAL_DATA.id, 'Abstain', 'Some rationale')
expect(onVote).toHaveBeenLastCalledWith(
activeMember.controllerAccount,
activeMember.id,
PROPOSAL_DATA.id,
'Abstain',
'Some rationale'
)
})
})
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,9 @@ export const CreateOpening: Story = {
})

step('Transaction parameters', () => {
const [description, openingType, stakePolicy, rewardPerBlock] = args.onCreateOpening.mock.calls.at(-1)
const [signer, description, openingType, stakePolicy, rewardPerBlock] = args.onCreateOpening.mock.calls.at(-1)

expect(signer).toBe(member('alice').controllerAccount)

expect(stakePolicy.toJSON()).toEqual({
stakeAmount: 100_0000000000,
Expand Down Expand Up @@ -276,7 +278,9 @@ export const CreateOpeningImport: Story = {
await userEvent.click(modal.getByText('Sign transaction and Create'))
})
step('Transaction parameters', () => {
const [description, openingType, stakePolicy, rewardPerBlock] = args.onCreateOpening.mock.calls.at(-1)
const [signer, description, openingType, stakePolicy, rewardPerBlock] = args.onCreateOpening.mock.calls.at(-1)

expect(signer).toBe(member('alice').controllerAccount)

expect(stakePolicy.toJSON()).toEqual({
stakeAmount: 200_0000000000,
Expand Down
4 changes: 2 additions & 2 deletions packages/ui/src/mocks/data/proposals.ts
Original file line number Diff line number Diff line change
Expand Up @@ -287,8 +287,8 @@ export const proposalsPagesChain = (
utility: {
batch: {
failure: createProposalFailure,
onSend: (transactions: SubmittableExtrinsic<'rxjs'>[]) =>
transactions.forEach((transaction) => transaction.signAndSend('')),
onSend: (signer: string, transactions: SubmittableExtrinsic<'rxjs'>[]) =>
transactions.forEach((transaction) => transaction.signAndSend(signer)),
},
},
},
Expand Down
4 changes: 2 additions & 2 deletions packages/ui/src/mocks/helpers/transactions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ export const fromTxMock = (
onCall?.(...args)
return {
paymentInfo,
signAndSend: () => {
onSend?.(...args)
signAndSend: (signer: string) => {
onSend?.(signer, ...args)
return txResult
},
}
Expand Down