Set both parallel mutation in a promise.all block.

This commit is contained in:
elweyn 2023-07-09 10:01:39 +02:00
parent 61063424bf
commit b07cd9d284

View File

@ -221,24 +221,30 @@ describe('semaphore', () => {
})
it('does throw error on second redeem call', async () => {
const redeem1 = mutate({
mutation: redeemTransactionLink,
variables: {
code: myCode,
},
})
const redeem2 = mutate({
mutation: redeemTransactionLink,
variables: {
code: myCode,
},
})
await expect(redeem1).resolves.toMatchObject({
errors: undefined,
})
await expect(redeem2).resolves.toMatchObject({
errors: [new GraphQLError('Transaction link already redeemed')],
})
const result = await Promise.all([
mutate({
mutation: redeemTransactionLink,
variables: {
code: myCode,
},
}),
mutate({
mutation: redeemTransactionLink,
variables: {
code: myCode,
},
}),
])
expect(result).toContainEqual(
expect.objectContaining({
errors: [new GraphQLError('Transaction link already redeemed')],
}),
)
expect(result).toContainEqual(
expect.objectContaining({
errors: undefined,
}),
)
})
})
})