Make txs in parallel in auction tests to reduce run time #30

Merged
nabarun merged 2 commits from pm-speedup-auction-tests into main 2024-10-30 05:45:18 +00:00

View File

@ -67,10 +67,13 @@ const auctionTests = () => {
test('Commit bids.', async () => {
for (let i = 0; i < numBidders; i++) {
bidAmounts.push((LOWEST_BID_AMOUNT + (i * 500)).toString());
bidderAccounts[i].bid = await createBid(chainId, auctionId, bidderAccounts[i].address, `${bidAmounts[i]}${DENOM}`);
await registry.commitBid({ auctionId, commitHash: bidderAccounts[i].bid.commitHash }, bidderAccounts[i].privateKey, fee);
}
await Promise.all(bidderAccounts.map(async (bidderAccount, i) => {
bidderAccounts[i].bid = await createBid(chainId, auctionId, bidderAccount.address, `${bidAmounts[i]}${DENOM}`);
return registry.commitBid({ auctionId, commitHash: bidderAccount.bid.commitHash }, bidderAccount.privateKey, fee);
}));
const [auction] = await registry.getAuctionsByIds([auctionId]);
expect(auction.status).toEqual('commit');
expect(auction.bids.length).toEqual(3);
@ -90,9 +93,9 @@ const auctionTests = () => {
const [auction] = await registry.getAuctionsByIds([auctionId]);
expect(auction.status).toEqual('reveal');
for (let i = 0; i < numBidders; i++) {
await registry.revealBid({ auctionId, reveal: bidderAccounts[i].bid.revealString }, bidderAccounts[i].privateKey, fee);
}
await Promise.all(bidderAccounts.map(async bidderAccount => {
return registry.revealBid({ auctionId, reveal: bidderAccount.bid.revealString }, bidderAccount.privateKey, fee);
}));
});
test('Check bids are revealed', async () => {
@ -175,7 +178,7 @@ const providerAuctionTestsWithBids = (bidAmounts: number[], numProviders: number
const otherAcc = await Account.generateFromMnemonic(mnenonic3);
await otherAcc.init();
await registry.sendCoins({ denom: DENOM, amount: CREATOR_INITIAL_BALANCE.toString(), destinationAddress: otherAcc.address }, privateKey, fee);
await registry.sendCoins({ denom: DENOM, amount: BIDDER_INITIAL_BALANCE.toString(), destinationAddress: otherAcc.address }, privateKey, fee);
otherAccount = { address: otherAcc.address, privateKey: otherAcc.privateKey.toString('hex') };
});
@ -205,10 +208,10 @@ const providerAuctionTestsWithBids = (bidAmounts: number[], numProviders: number
});
test('Commit bids.', async () => {
for (let i = 0; i < numBidders; i++) {
bidderAccounts[i].bid = await createBid(chainId, auctionId, bidderAccounts[i].address, `${bidAmounts[i]}${DENOM}`);
await registry.commitBid({ auctionId, commitHash: bidderAccounts[i].bid.commitHash }, bidderAccounts[i].privateKey, fee);
}
await Promise.all(bidderAccounts.map(async (bidderAccount, i) => {
bidderAccounts[i].bid = await createBid(chainId, auctionId, bidderAccount.address, `${bidAmounts[i]}${DENOM}`);
return registry.commitBid({ auctionId, commitHash: bidderAccount.bid.commitHash }, bidderAccount.privateKey, fee);
}));
sortedBidders = bidderAccounts.slice().sort((a, b) => {
return parseInt(a.bid.reveal.bidAmount) - parseInt(b.bid.reveal.bidAmount);
@ -239,21 +242,21 @@ const providerAuctionTestsWithBids = (bidAmounts: number[], numProviders: number
const [auction] = await registry.getAuctionsByIds([auctionId]);
expect(auction.status).toEqual('reveal');
for (let i = 0; i < numBidders; i++) {
await Promise.all(bidderAccounts.map(async bidderAccount => {
try {
await registry.revealBid(
{ auctionId, reveal: bidderAccounts[i].bid.revealString },
bidderAccounts[i].privateKey,
{ auctionId, reveal: bidderAccount.bid.revealString },
bidderAccount.privateKey,
fee
);
} catch (error: any) {
if (invalidBidderAddress === bidderAccounts[i].address) {
if (bidderAccount.address === invalidBidderAddress) {
expect(error.toString()).toContain(INVALID_BID_ERROR);
} else {
throw error;
}
}
}
}));
});
test('Check bids are revealed', async () => {