@@ -1006,6 +1006,59 @@ describe('ParseLiveQueryServer', function() {
|
|||||||
expect(originalObject.updatedAt).not.toBeUndefined();
|
expect(originalObject.updatedAt).not.toBeUndefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('can inflate user object', async () => {
|
||||||
|
const parseLiveQueryServer = new ParseLiveQueryServer({});
|
||||||
|
const userJSON = {
|
||||||
|
username: 'test',
|
||||||
|
ACL: {},
|
||||||
|
createdAt: '2018-12-21T23:09:51.784Z',
|
||||||
|
sessionToken: 'r:1234',
|
||||||
|
updatedAt: '2018-12-21T23:09:51.784Z',
|
||||||
|
objectId: 'NhF2u9n72W',
|
||||||
|
__type: 'Object',
|
||||||
|
className: '_User',
|
||||||
|
_hashed_password: '1234',
|
||||||
|
_email_verify_token: '1234',
|
||||||
|
};
|
||||||
|
|
||||||
|
const originalUserJSON = {
|
||||||
|
username: 'test',
|
||||||
|
ACL: {},
|
||||||
|
createdAt: '2018-12-21T23:09:51.784Z',
|
||||||
|
sessionToken: 'r:1234',
|
||||||
|
updatedAt: '2018-12-21T23:09:51.784Z',
|
||||||
|
objectId: 'NhF2u9n72W',
|
||||||
|
__type: 'Object',
|
||||||
|
className: '_User',
|
||||||
|
_hashed_password: '12345',
|
||||||
|
_email_verify_token: '12345',
|
||||||
|
};
|
||||||
|
|
||||||
|
const message = {
|
||||||
|
currentParseObject: userJSON,
|
||||||
|
originalParseObject: originalUserJSON,
|
||||||
|
};
|
||||||
|
parseLiveQueryServer._inflateParseObject(message);
|
||||||
|
|
||||||
|
const object = message.currentParseObject;
|
||||||
|
expect(object instanceof Parse.Object).toBeTruthy();
|
||||||
|
expect(object.get('_hashed_password')).toBeUndefined();
|
||||||
|
expect(object.get('_email_verify_token')).toBeUndefined();
|
||||||
|
expect(object.className).toEqual('_User');
|
||||||
|
expect(object.id).toBe('NhF2u9n72W');
|
||||||
|
expect(object.createdAt).not.toBeUndefined();
|
||||||
|
expect(object.updatedAt).not.toBeUndefined();
|
||||||
|
|
||||||
|
const originalObject = message.originalParseObject;
|
||||||
|
expect(originalObject instanceof Parse.Object).toBeTruthy();
|
||||||
|
expect(originalObject.get('_hashed_password')).toBeUndefined();
|
||||||
|
expect(originalObject.get('_email_verify_token')).toBeUndefined();
|
||||||
|
expect(originalObject.className).toEqual('_User');
|
||||||
|
expect(originalObject.id).toBe('NhF2u9n72W');
|
||||||
|
expect(originalObject.createdAt).not.toBeUndefined();
|
||||||
|
expect(originalObject.updatedAt).not.toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
it('can match undefined ACL', function(done) {
|
it('can match undefined ACL', function(done) {
|
||||||
const parseLiveQueryServer = new ParseLiveQueryServer({});
|
const parseLiveQueryServer = new ParseLiveQueryServer({});
|
||||||
const client = {};
|
const client = {};
|
||||||
@@ -1314,7 +1367,7 @@ describe('ParseLiveQueryServer', function() {
|
|||||||
new Parse.ACL()
|
new Parse.ACL()
|
||||||
);
|
);
|
||||||
liveQueryRole.id = 'abcdef1234';
|
liveQueryRole.id = 'abcdef1234';
|
||||||
callback(liveQueryRole)
|
callback(liveQueryRole);
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import { runLiveQueryEventHandlers } from '../triggers';
|
|||||||
import { getAuthForSessionToken, Auth } from '../Auth';
|
import { getAuthForSessionToken, Auth } from '../Auth';
|
||||||
import { getCacheController } from '../Controllers';
|
import { getCacheController } from '../Controllers';
|
||||||
import LRU from 'lru-cache';
|
import LRU from 'lru-cache';
|
||||||
|
import UserRouter from '../Routers/UsersRouter';
|
||||||
|
|
||||||
class ParseLiveQueryServer {
|
class ParseLiveQueryServer {
|
||||||
clients: Map;
|
clients: Map;
|
||||||
@@ -98,6 +99,7 @@ class ParseLiveQueryServer {
|
|||||||
_inflateParseObject(message: any): void {
|
_inflateParseObject(message: any): void {
|
||||||
// Inflate merged object
|
// Inflate merged object
|
||||||
const currentParseObject = message.currentParseObject;
|
const currentParseObject = message.currentParseObject;
|
||||||
|
UserRouter.removeHiddenProperties(currentParseObject);
|
||||||
let className = currentParseObject.className;
|
let className = currentParseObject.className;
|
||||||
let parseObject = new Parse.Object(className);
|
let parseObject = new Parse.Object(className);
|
||||||
parseObject._finishFetch(currentParseObject);
|
parseObject._finishFetch(currentParseObject);
|
||||||
@@ -105,6 +107,7 @@ class ParseLiveQueryServer {
|
|||||||
// Inflate original object
|
// Inflate original object
|
||||||
const originalParseObject = message.originalParseObject;
|
const originalParseObject = message.originalParseObject;
|
||||||
if (originalParseObject) {
|
if (originalParseObject) {
|
||||||
|
UserRouter.removeHiddenProperties(originalParseObject);
|
||||||
className = originalParseObject.className;
|
className = originalParseObject.className;
|
||||||
parseObject = new Parse.Object(className);
|
parseObject = new Parse.Object(className);
|
||||||
parseObject._finishFetch(originalParseObject);
|
parseObject._finishFetch(originalParseObject);
|
||||||
|
|||||||
Reference in New Issue
Block a user