@dashevo/wallet-lib
Version:
Light wallet library for Dash
29 lines (21 loc) • 1.06 kB
JavaScript
const DAPIClient = require('@dashevo/dapi-client');
const TxStreamMock = require('./TxStreamMock');
const TransportMock = require('./TransportMock');
module.exports = async function createAndAttachTransportMocksToWallet(wallet, sinon) {
const txStreamMock = new TxStreamMock();
const transportMock = new TransportMock(sinon, txStreamMock);
// eslint-disable-next-line no-param-reassign
wallet.transport = transportMock;
const accountSyncPromise = wallet.getAccount();
// Breaking the event loop to start wallet syncing
await new Promise((resolve) => { setTimeout(resolve, 0); });
// Simulate headers sync finish
const { blockHeadersProvider } = wallet.transport.client;
blockHeadersProvider.emit(DAPIClient.BlockHeadersProvider.EVENTS.HISTORICAL_DATA_OBTAINED);
await new Promise((resolve) => { setTimeout(resolve, 0); });
// Emitting tx stream end to make wallet sync finish
txStreamMock.emit(TxStreamMock.EVENTS.end);
// Waiting for wallet to sync
await accountSyncPromise;
return { txStreamMock, transportMock };
};