Skip to content

Commit 1936c64

Browse files
authored
fix(transport-commons): Crow - fix array dispatching (#3073)
1 parent f5f7fae commit 1936c64

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

packages/transport-commons/src/socket/utils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export function getDispatcher (emit: string, socketMap: WeakMap<RealTimeConnecti
5151
// If we are getting events from an array but try to dispatch individual data
5252
// try to get the individual item to dispatch from the correct index.
5353
if (!Array.isArray(data) && Array.isArray(context.result) && Array.isArray(result)) {
54-
result = context.result.find(resultData => isEqual(resultData, data));
54+
result = result.find(resultData => isEqual(resultData, data));
5555
}
5656

5757
debug(`Dispatching '${eventName}' to Socket ${socket.id} with`, result);

packages/transport-commons/test/socket/utils.test.ts

+19
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,25 @@ describe('socket commons utils', () => {
165165
dispatcher('testing', dummyChannel, dummyHook, data2);
166166
});
167167

168+
it('dispatches dispatch arrays properly', done => {
169+
const data1 = { message: 'First message' };
170+
const data2 = { message: 'Second message' };
171+
172+
dummyHook.result = []
173+
dummyHook.dispatch = [ data1, data2 ];
174+
175+
dummySocket.once('testing', data => {
176+
assert.deepStrictEqual(data, data1);
177+
dummySocket.once('testing', result => {
178+
assert.deepStrictEqual(result, data2);
179+
done();
180+
});
181+
});
182+
183+
dispatcher('testing', dummyChannel, dummyHook, data1);
184+
dispatcher('testing', dummyChannel, dummyHook, data2);
185+
});
186+
168187
it('dispatches arrays properly for custom events', done => {
169188
const result = [
170189
{ message: 'First' },

0 commit comments

Comments
 (0)