attempt to fix subscribeToEvents test (#4638)
This commit is contained in:
parent
cb3c6b1bec
commit
94fa2db986
@ -76,7 +76,8 @@ const subscribeToEvents = (contract, events, opt = {}) => {
|
|||||||
|
|
||||||
filter = api.eth
|
filter = api.eth
|
||||||
.newFilter({
|
.newFilter({
|
||||||
fromBlock: opt.from, toBlock: opt.to,
|
fromBlock: opt.from,
|
||||||
|
toBlock: opt.to,
|
||||||
address: contract.address,
|
address: contract.address,
|
||||||
topics: [signatures]
|
topics: [signatures]
|
||||||
})
|
})
|
||||||
|
@ -14,15 +14,18 @@
|
|||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import { spy, stub } from 'sinon';
|
import { spy, stub, useFakeTimers } from 'sinon';
|
||||||
|
|
||||||
import subscribeToEvents from './subscribe-to-events';
|
import subscribeToEvents from './subscribe-to-events';
|
||||||
import {
|
import {
|
||||||
pastLogs, liveLogs, createApi, createContract
|
pastLogs, liveLogs, createApi, createContract
|
||||||
} from './subscribe-to-events.test.js';
|
} from './subscribe-to-events.test.js';
|
||||||
|
|
||||||
|
// Note: We want to have a `setTimeout` that is independent from
|
||||||
|
// `sinon.useFakeTimers`. Therefore we dereference `setTimeout` here.
|
||||||
|
const _setTimeout = setTimeout;
|
||||||
const delay = (t) => new Promise((resolve) => {
|
const delay = (t) => new Promise((resolve) => {
|
||||||
setTimeout(resolve, t);
|
_setTimeout(resolve, t);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('util/subscribe-to-events', () => {
|
describe('util/subscribe-to-events', () => {
|
||||||
@ -97,7 +100,8 @@ describe('util/subscribe-to-events', () => {
|
|||||||
expect(api.eth.uninstallFilter.firstCall.args).to.eql([ 123 ]);
|
expect(api.eth.uninstallFilter.firstCall.args).to.eql([ 123 ]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it.skip('checks for new events regularly', async function () {
|
it('checks for new events regularly', async function () {
|
||||||
|
const clock = useFakeTimers();
|
||||||
const { api, contract } = this;
|
const { api, contract } = this;
|
||||||
|
|
||||||
api.eth.getFilterLogs = stub().resolves([]);
|
api.eth.getFilterLogs = stub().resolves([]);
|
||||||
@ -108,12 +112,16 @@ describe('util/subscribe-to-events', () => {
|
|||||||
subscribeToEvents(contract, [ 'Bar' ], { interval: 5 })
|
subscribeToEvents(contract, [ 'Bar' ], { interval: 5 })
|
||||||
.on('log', onLog)
|
.on('log', onLog)
|
||||||
.on('Bar', onBar);
|
.on('Bar', onBar);
|
||||||
await delay(10);
|
await delay(1); // let stubs resolve
|
||||||
|
clock.tick(5);
|
||||||
|
await delay(1); // let stubs resolve
|
||||||
|
|
||||||
expect(onLog.callCount).to.be.at.least(1);
|
expect(onLog.callCount).to.be.at.least(1);
|
||||||
expect(onLog.firstCall.args).to.eql([ liveLogs[0] ]);
|
expect(onLog.firstCall.args).to.eql([ liveLogs[0] ]);
|
||||||
expect(onBar.callCount).to.be.at.least(1);
|
expect(onBar.callCount).to.be.at.least(1);
|
||||||
expect(onBar.firstCall.args).to.eql([ liveLogs[0] ]);
|
expect(onBar.firstCall.args).to.eql([ liveLogs[0] ]);
|
||||||
|
|
||||||
|
clock.restore();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('accepts a custom block range', async function () {
|
it('accepts a custom block range', async function () {
|
||||||
|
Loading…
Reference in New Issue
Block a user