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
This commit is contained in:
dblythy
2020-12-04 11:36:41 +11:00
committed by GitHub
parent 094e08914c
commit b13a6a4ed2
3 changed files with 31 additions and 7 deletions

View File

@@ -6,6 +6,33 @@ const validatorFail = () => {
};
describe('ParseLiveQuery', function () {
it('access user on onLiveQueryEvent disconnect', async done => {
await reconfigureServer({
liveQuery: {
classNames: ['TestObject'],
},
startLiveQueryServer: true,
verbose: false,
silent: true,
});
const requestedUser = new Parse.User();
requestedUser.setUsername('username');
requestedUser.setPassword('password');
Parse.Cloud.onLiveQueryEvent(req => {
const { event, sessionToken } = req;
if (event === 'ws_disconnect') {
expect(sessionToken).toBeDefined();
expect(sessionToken).toBe(requestedUser.getSessionToken());
done();
}
});
await requestedUser.signUp();
const query = new Parse.Query(TestObject);
await query.subscribe();
const client = await Parse.CoreManager.getLiveQueryController().getDefaultLiveQueryClient();
client.close();
});
it('can subscribe to query', async done => {
await reconfigureServer({
liveQuery: {
@@ -28,6 +55,7 @@ describe('ParseLiveQuery', function () {
object.set({ foo: 'bar' });
await object.save();
});
it('expect afterEvent create', async done => {
await reconfigureServer({
liveQuery: {
@@ -542,7 +570,6 @@ describe('ParseLiveQuery', function () {
expect(req.useMasterKey).toBe(false);
expect(req.installationId).toBeDefined();
expect(req.user).toBeUndefined();
expect(req.sessionToken).toBeUndefined();
expect(req.client).toBeDefined();
});
const query = new Parse.Query(TestObject);

View File

@@ -423,6 +423,7 @@ class ParseLiveQueryServer {
subscriptions: this.subscriptions.size,
useMasterKey: client.hasMasterKey,
installationId: client.installationId,
sessionToken: client.sessionToken,
});
});

View File

@@ -968,14 +968,10 @@ async function userForSessionToken(sessionToken) {
}
const q = new Parse.Query('_Session');
q.equalTo('sessionToken', sessionToken);
q.include('user');
const session = await q.first({ useMasterKey: true });
if (!session) {
return;
}
const user = session.get('user');
if (!user) {
return;
}
await user.fetch({ useMasterKey: true });
return user;
return session.get('user');
}