This commit is contained in:
Diamond Lewis
2018-12-23 19:40:59 -06:00
committed by GitHub
parent a9aff79cc6
commit 99698928af
2 changed files with 57 additions and 1 deletions

View File

@@ -1006,6 +1006,59 @@ describe('ParseLiveQueryServer', function() {
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) {
const parseLiveQueryServer = new ParseLiveQueryServer({});
const client = {};
@@ -1314,7 +1367,7 @@ describe('ParseLiveQueryServer', function() {
new Parse.ACL()
);
liveQueryRole.id = 'abcdef1234';
callback(liveQueryRole)
callback(liveQueryRole);
return Promise.resolve();
},
};

View File

@@ -14,6 +14,7 @@ import { runLiveQueryEventHandlers } from '../triggers';
import { getAuthForSessionToken, Auth } from '../Auth';
import { getCacheController } from '../Controllers';
import LRU from 'lru-cache';
import UserRouter from '../Routers/UsersRouter';
class ParseLiveQueryServer {
clients: Map;
@@ -98,6 +99,7 @@ class ParseLiveQueryServer {
_inflateParseObject(message: any): void {
// Inflate merged object
const currentParseObject = message.currentParseObject;
UserRouter.removeHiddenProperties(currentParseObject);
let className = currentParseObject.className;
let parseObject = new Parse.Object(className);
parseObject._finishFetch(currentParseObject);
@@ -105,6 +107,7 @@ class ParseLiveQueryServer {
// Inflate original object
const originalParseObject = message.originalParseObject;
if (originalParseObject) {
UserRouter.removeHiddenProperties(originalParseObject);
className = originalParseObject.className;
parseObject = new Parse.Object(className);
parseObject._finishFetch(originalParseObject);