Skip to content

Commit 5b7cd1a

Browse files
committed
Fix tests broken by the side effect of custom ping-pong
1 parent 37cd8a1 commit 5b7cd1a

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

test/integration/event_handler.test.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,15 +217,19 @@ describe('Event Handler Test', function() {
217217

218218
it('Wait BLOCK_FINALIZED events', function(done) {
219219
this.timeout(3 * epochMs);
220-
wsClient.once('message', (message) => {
220+
function messageHandler(message) {
221221
const parsedMessage = JSON.parse(message);
222222
const messageType = parsedMessage.type;
223223
const eventType = _.get(parsedMessage, 'data.type');
224224
if (messageType === BlockchainEventMessageTypes.EMIT_EVENT &&
225225
eventType === BlockchainEventTypes.BLOCK_FINALIZED) {
226226
done();
227+
// NOTE(platfowner): Avoid test failure with "done() called multiple times".
228+
wsClient.removeListener('message', messageHandler);
227229
}
228-
});
230+
}
231+
// NOTE(platfowner): Use 'on' instead of 'once' due to heartbeats with custom ping-pong.
232+
wsClient.on('message', messageHandler);
229233
});
230234

231235
it('Deregister filter & check number of filters === 0', function(done) {
@@ -324,7 +328,8 @@ describe('Event Handler Test', function() {
324328
block_number: null,
325329
};
326330
registerFilter(wsClient, filterId, BlockchainEventTypes.BLOCK_FINALIZED, config);
327-
wsClient.once('message', (message) => {
331+
// NOTE(platfowner): Use 'on' instead of 'once' due to heartbeats with custom ping-pong.
332+
wsClient.on('message', (message) => {
328333
const parsedMessage = JSON.parse(message);
329334
const messageType = parsedMessage.type;
330335
const eventType = _.get(parsedMessage, 'data.type');
@@ -343,7 +348,8 @@ describe('Event Handler Test', function() {
343348
path: targetPath,
344349
};
345350
registerFilter(wsClient, filterId, BlockchainEventTypes.VALUE_CHANGED, config);
346-
wsClient.once('message', (message) => {
351+
// NOTE(platfowner): Use 'on' instead of 'once' due to heartbeats with custom ping-pong.
352+
wsClient.on('message', (message) => {
347353
const parsedMessage = JSON.parse(message);
348354
const messageType = parsedMessage.type;
349355
const eventType = _.get(parsedMessage, 'data.type');

0 commit comments

Comments
 (0)