Skip to content

Commit b13a6a4

Browse files
authored
feat: include sessionToken in onLiveQueryEvent (#7043)
* feat: include user in onLiveQueryEvent * Update ParseLiveQuery.spec.js * increase coverage * add space * Update ParseLiveQuery.spec.js * remove user from runLiveQueryEventHandlers
1 parent 094e089 commit b13a6a4

File tree

3 files changed

+31
-7
lines changed

3 files changed

+31
-7
lines changed

spec/ParseLiveQuery.spec.js

+28-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,33 @@ const validatorFail = () => {
66
};
77

88
describe('ParseLiveQuery', function () {
9+
it('access user on onLiveQueryEvent disconnect', async done => {
10+
await reconfigureServer({
11+
liveQuery: {
12+
classNames: ['TestObject'],
13+
},
14+
startLiveQueryServer: true,
15+
verbose: false,
16+
silent: true,
17+
});
18+
const requestedUser = new Parse.User();
19+
requestedUser.setUsername('username');
20+
requestedUser.setPassword('password');
21+
Parse.Cloud.onLiveQueryEvent(req => {
22+
const { event, sessionToken } = req;
23+
if (event === 'ws_disconnect') {
24+
expect(sessionToken).toBeDefined();
25+
expect(sessionToken).toBe(requestedUser.getSessionToken());
26+
done();
27+
}
28+
});
29+
await requestedUser.signUp();
30+
const query = new Parse.Query(TestObject);
31+
await query.subscribe();
32+
const client = await Parse.CoreManager.getLiveQueryController().getDefaultLiveQueryClient();
33+
client.close();
34+
});
35+
936
it('can subscribe to query', async done => {
1037
await reconfigureServer({
1138
liveQuery: {
@@ -28,6 +55,7 @@ describe('ParseLiveQuery', function () {
2855
object.set({ foo: 'bar' });
2956
await object.save();
3057
});
58+
3159
it('expect afterEvent create', async done => {
3260
await reconfigureServer({
3361
liveQuery: {
@@ -542,7 +570,6 @@ describe('ParseLiveQuery', function () {
542570
expect(req.useMasterKey).toBe(false);
543571
expect(req.installationId).toBeDefined();
544572
expect(req.user).toBeUndefined();
545-
expect(req.sessionToken).toBeUndefined();
546573
expect(req.client).toBeDefined();
547574
});
548575
const query = new Parse.Query(TestObject);

src/LiveQuery/ParseLiveQueryServer.js

+1
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,7 @@ class ParseLiveQueryServer {
423423
subscriptions: this.subscriptions.size,
424424
useMasterKey: client.hasMasterKey,
425425
installationId: client.installationId,
426+
sessionToken: client.sessionToken,
426427
});
427428
});
428429

src/triggers.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -968,14 +968,10 @@ async function userForSessionToken(sessionToken) {
968968
}
969969
const q = new Parse.Query('_Session');
970970
q.equalTo('sessionToken', sessionToken);
971+
q.include('user');
971972
const session = await q.first({ useMasterKey: true });
972973
if (!session) {
973974
return;
974975
}
975-
const user = session.get('user');
976-
if (!user) {
977-
return;
978-
}
979-
await user.fetch({ useMasterKey: true });
980-
return user;
976+
return session.get('user');
981977
}

0 commit comments

Comments
 (0)