From d90756e8ef2634737d41633f5427446b47223e98 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Fri, 10 Nov 2017 10:07:29 -0500 Subject: Test that the orderStateWatcher doesn't emit an event when an irrelevant blockchain event is received. --- test/order_state_watcher_test.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'test/order_state_watcher_test.ts') diff --git a/test/order_state_watcher_test.ts b/test/order_state_watcher_test.ts index 10ed6bd77..1231d7e16 100644 --- a/test/order_state_watcher_test.ts +++ b/test/order_state_watcher_test.ts @@ -121,6 +121,28 @@ describe('OrderStateWatcher', () => { await zeroEx.token.setProxyAllowanceAsync(makerToken.address, maker, new BigNumber(0)); })().catch(done); }); + it('should not emit an orderState event when irrelevant Transfer event received', (done: DoneCallback) => { + (async () => { + signedOrder = await fillScenarios.createFillableSignedOrderAsync( + makerToken.address, takerToken.address, maker, taker, fillableAmount, + ); + const orderHash = ZeroEx.getOrderHashHex(signedOrder); + zeroEx.orderStateWatcher.addOrder(signedOrder); + const callback = reportCallbackErrors(done)((orderState: OrderState) => { + throw new Error('OrderState callback fired for irrelevant order'); + }); + zeroEx.orderStateWatcher.subscribe(callback); + const notTheMaker = userAddresses[0]; + const anyRecipient = taker; + const transferAmount = new BigNumber(2); + const notTheMakerBalance = await zeroEx.token.getBalanceAsync(makerToken.address, notTheMaker); + await zeroEx.token.transferAsync(makerToken.address, notTheMaker, anyRecipient, transferAmount); + const timeoutInMs = 150; + setTimeout(() => { + done(); + }, timeoutInMs); + })().catch(done); + }); it('should emit orderStateInvalid when maker moves balance backing watched order', (done: DoneCallback) => { (async () => { signedOrder = await fillScenarios.createFillableSignedOrderAsync( -- cgit