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