diff --git a/packages/web3-eth-contract/test/integration/local_account/contract_deploy.test.ts b/packages/web3-eth-contract/test/integration/local_account/contract_deploy.test.ts index b1418d08231..7938636d8cb 100644 --- a/packages/web3-eth-contract/test/integration/local_account/contract_deploy.test.ts +++ b/packages/web3-eth-contract/test/integration/local_account/contract_deploy.test.ts @@ -20,9 +20,8 @@ import Web3 from 'web3'; // eslint-disable-next-line import/no-extraneous-dependencies import { Web3Account } from 'web3-eth-accounts'; import { GreeterBytecode, GreeterAbi } from '../../shared_fixtures/build/Greeter'; -import { getSystemTestProvider, createLocalAccount, isWs } from '../../fixtures/system_test_utils'; +import { getSystemTestProvider, createLocalAccount } from '../../fixtures/system_test_utils'; import { Contract } from '../../../src'; -import { sleep } from '../../shared_fixtures/utils'; describe('contract', () => { describe('deploy', () => { @@ -118,23 +117,30 @@ describe('contract', () => { it('should emit the "confirmation" event', async () => { const confirmationHandler = jest.fn(); - - await contract + const promievent = contract .deploy(deployOptions) - .send(sendOptions) - .on('confirmation', confirmationHandler); + .send(sendOptions); + const receiptPromise = new Promise((resolve) => { + // eslint-disable-next-line @typescript-eslint/no-floating-promises + promievent + .on('receipt', () => { + resolve() + }) + }) - // Wait for sometime to allow the transaction to be processed - await sleep(500); + const confirmationPRomise = new Promise((resolve) => { + // eslint-disable-next-line @typescript-eslint/no-floating-promises + promievent + .on('confirmation', () => {confirmationHandler(); resolve();}) + }) + await promievent; + await receiptPromise; // Deploy once again to trigger block mining to trigger confirmation // We can send any other transaction as well await contract.deploy(deployOptions).send(sendOptions); - // Wait for some fraction of time to trigger the handler - // On http we use polling to get confirmation, so wait a bit longer - await sleep(isWs ? 500 : 2000); - + await confirmationPRomise; // eslint-disable-next-line jest/no-standalone-expect expect(confirmationHandler).toHaveBeenCalled(); }); diff --git a/packages/web3-eth/test/integration/subscription_logs.test.ts b/packages/web3-eth/test/integration/subscription_logs.test.ts index 469f3bb88eb..748aadab99c 100644 --- a/packages/web3-eth/test/integration/subscription_logs.test.ts +++ b/packages/web3-eth/test/integration/subscription_logs.test.ts @@ -93,7 +93,7 @@ describeIf(isSocket)('subscription', () => { let count = 0; - const pr = new Promise((resolve: Resolve, reject) => { + const pr = new Promise((resolve: Resolve) => { sub.on('data', (data: any) => { count += 1; const decodedData = decodeEventABI( @@ -106,13 +106,12 @@ describeIf(isSocket)('subscription', () => { resolve(); } }); - sub.on('error', reject); + }); - makeFewTxToContract({ - contract: contractDeployed, - sendOptions, - testDataString, - }).catch(e => reject(e)); + await makeFewTxToContract({ + contract: contractDeployed, + sendOptions, + testDataString, }); await pr; diff --git a/packages/web3/test/integration/web3.test.ts b/packages/web3/test/integration/web3.test.ts index 356a5f3d917..18a49dd0fcc 100644 --- a/packages/web3/test/integration/web3.test.ts +++ b/packages/web3/test/integration/web3.test.ts @@ -20,9 +20,9 @@ import HttpProvider from 'web3-providers-http'; import { IpcProvider } from 'web3-providers-ipc'; import WebSocketProvider from 'web3-providers-ws'; import { JsonRpcOptionalRequest, SupportedProviders, Web3BaseProvider } from 'web3-types'; -import Web3 from '../../src/index'; +import { Web3 } from '../../src/index'; import { BasicAbi } from '../shared_fixtures/Basic'; -import { GreeterAbi, GreeterBytecode } from '../shared_fixtures/build/Greeter'; +import { GreeterAbi } from '../shared_fixtures/build/Greeter'; import { validEncodeParametersData } from '../shared_fixtures/data'; import { closeOpenConnection, @@ -35,7 +35,7 @@ import { isSocket, isWs, itIf, - waitForOpenConnection, + waitForOpenConnection } from '../shared_fixtures/system_tests_utils'; /* eslint-disable jest/no-standalone-expect */ @@ -55,7 +55,11 @@ describe('Web3 instance', () => { accounts = [acc1.address, acc2.address]; }); afterAll(async () => { - await closeOpenConnection(web3); + try { + await closeOpenConnection(web3); + } catch (e) { + console.warn("Failed to close open con", e) + } }); beforeEach(() => { @@ -303,25 +307,18 @@ describe('Web3 instance', () => { describe('defaults', () => { let contract: Contract; - let deployOptions: Record; - let sendOptions: Record; - let acc: { address: string; privateKey: string }; beforeAll(() => { web3 = new Web3(provider); }); - beforeEach(async () => { - acc = await createTempAccount(); - - // todo import GreeterBytecode - deployOptions = { - data: GreeterBytecode, - arguments: ['My Greeting'], - }; - - sendOptions = { from: acc.address, gas: '1000000' }; - }); + afterAll(() => { + try { + web3.provider?.disconnect(); + } catch (e) { + // ignored + } + }) it('should update defaults on contract instance', () => { const hardfork = 'berlin'; @@ -334,20 +331,12 @@ describe('Web3 instance', () => { web3.defaultHardfork = hardfork; expect(contract.defaultHardfork).toBe(hardfork); + try { + contract.provider?.disconnect(); + } catch (e) { + // ignored + } }); - it('should update defaults on deployed contract instance', async () => { - const hardfork = 'berlin'; - - contract = new web3.eth.Contract(GreeterAbi, undefined, { - provider: getSystemTestProvider(), - syncWithContext: true, - }); - contract = await contract.deploy(deployOptions).send(sendOptions); - - web3.defaultHardfork = hardfork; - - expect(contract.defaultHardfork).toBe(hardfork); - }); }); });