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:
@@ -6,6 +6,33 @@ const validatorFail = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
describe('ParseLiveQuery', function () {
|
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 => {
|
it('can subscribe to query', async done => {
|
||||||
await reconfigureServer({
|
await reconfigureServer({
|
||||||
liveQuery: {
|
liveQuery: {
|
||||||
@@ -28,6 +55,7 @@ describe('ParseLiveQuery', function () {
|
|||||||
object.set({ foo: 'bar' });
|
object.set({ foo: 'bar' });
|
||||||
await object.save();
|
await object.save();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('expect afterEvent create', async done => {
|
it('expect afterEvent create', async done => {
|
||||||
await reconfigureServer({
|
await reconfigureServer({
|
||||||
liveQuery: {
|
liveQuery: {
|
||||||
@@ -542,7 +570,6 @@ describe('ParseLiveQuery', function () {
|
|||||||
expect(req.useMasterKey).toBe(false);
|
expect(req.useMasterKey).toBe(false);
|
||||||
expect(req.installationId).toBeDefined();
|
expect(req.installationId).toBeDefined();
|
||||||
expect(req.user).toBeUndefined();
|
expect(req.user).toBeUndefined();
|
||||||
expect(req.sessionToken).toBeUndefined();
|
|
||||||
expect(req.client).toBeDefined();
|
expect(req.client).toBeDefined();
|
||||||
});
|
});
|
||||||
const query = new Parse.Query(TestObject);
|
const query = new Parse.Query(TestObject);
|
||||||
|
|||||||
@@ -423,6 +423,7 @@ class ParseLiveQueryServer {
|
|||||||
subscriptions: this.subscriptions.size,
|
subscriptions: this.subscriptions.size,
|
||||||
useMasterKey: client.hasMasterKey,
|
useMasterKey: client.hasMasterKey,
|
||||||
installationId: client.installationId,
|
installationId: client.installationId,
|
||||||
|
sessionToken: client.sessionToken,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -968,14 +968,10 @@ async function userForSessionToken(sessionToken) {
|
|||||||
}
|
}
|
||||||
const q = new Parse.Query('_Session');
|
const q = new Parse.Query('_Session');
|
||||||
q.equalTo('sessionToken', sessionToken);
|
q.equalTo('sessionToken', sessionToken);
|
||||||
|
q.include('user');
|
||||||
const session = await q.first({ useMasterKey: true });
|
const session = await q.first({ useMasterKey: true });
|
||||||
if (!session) {
|
if (!session) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const user = session.get('user');
|
return session.get('user');
|
||||||
if (!user) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await user.fetch({ useMasterKey: true });
|
|
||||||
return user;
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user