未验证 提交 b13a6a4e 编写于 作者: D dblythy 提交者: GitHub

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
上级 094e0891
......@@ -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);
......
......@@ -423,6 +423,7 @@ class ParseLiveQueryServer {
subscriptions: this.subscriptions.size,
useMasterKey: client.hasMasterKey,
installationId: client.installationId,
sessionToken: client.sessionToken,
});
});
......
......@@ -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');
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册