Skip to content
This repository was archived by the owner on Oct 18, 2024. It is now read-only.

Commit e3ea9a0

Browse files
committed
fix(realtime/presence): return promise in get all
1 parent 98a97ca commit e3ea9a0

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed

src/components/realtime/presence.test.ts

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { PresenceEvents, Room } from '../../lib/socket';
1+
import { PresenceEvent, PresenceEvents, Room } from '../../lib/socket';
22

33
import { RealtimePresence } from './presence';
44
import { MOCK_IO } from '../../../__mocks__/io.mock';
@@ -55,5 +55,18 @@ describe('realtime component', () => {
5555

5656
expect(spy).toHaveBeenCalled();
5757
});
58+
59+
test('should get all presences and resolve', async () => {
60+
RealtimePresenceInstance['room'].presence.get = jest.fn((callback) => {
61+
callback([{ id: '123', name: 'John Doe' }] as PresenceEvent[]);
62+
});
63+
const presences = RealtimePresenceInstance['getAll']();
64+
65+
expect(presences instanceof Promise).toBe(true);
66+
67+
const data = await presences;
68+
69+
expect(data).toEqual([{ id: '123', name: 'John Doe' }]);
70+
});
5871
});
5972
});

src/components/realtime/presence.ts

+12-13
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,18 @@ export class RealtimePresence {
2424
this.room.presence.off(event);
2525
}
2626

27-
public getAll() {
27+
public async getAll() {
2828
this.logger.log('Realtime Presence @ get all');
29-
let presences: Socket.PresenceEvent[] = [];
30-
this.room.presence.get(
31-
(data) => {
32-
presences = data;
33-
},
34-
(error) => {
35-
const message = `[SuperViz] ${error.name} - ${error.message}`;
36-
this.logger.log(error);
37-
console.error(message);
38-
},
39-
);
40-
return presences;
29+
return new Promise((resolve, reject) => {
30+
this.room.presence.get(
31+
(data) => resolve(data),
32+
(error) => {
33+
const message = `[SuperViz] ${error.name} - ${error.message}`;
34+
this.logger.log(error);
35+
console.error(message);
36+
reject(error);
37+
},
38+
);
39+
});
4140
}
4241
}

0 commit comments

Comments
 (0)