diff --git a/spec/ParseQuery.spec.js b/spec/ParseQuery.spec.js index d29054d263..29a4b655e1 100644 --- a/spec/ParseQuery.spec.js +++ b/spec/ParseQuery.spec.js @@ -2312,18 +2312,28 @@ describe('Parse.Query testing', () => { }); }); - it('include on the wrong key type', (done) => { - var obj = new Parse.Object('TestObject'); - obj.set('foo', 'bar'); - obj.save().then(() => { - var query = new Parse.Query('TestObject'); - query.include('foo'); - return query.find(); - }).then((results) => { - console.log('results:', results); - fail('Should have failed to query.'); + it_exclude_dbs(['postgres'])('supports include on the wrong key type (#2262)', function(done) { + let childObject = new Parse.Object('TestChildObject'); + childObject.set('hello', 'world'); + childObject.save().then(() => { + let obj = new Parse.Object('TestObject'); + obj.set('foo', 'bar'); + obj.set('child', childObject); + return obj.save(); + }).then(() => { + let q = new Parse.Query('TestObject'); + q.include('child'); + q.include('child.parent'); + q.include('createdAt'); + q.include('createdAt.createdAt'); + return q.find(); + }).then((objs) => { + expect(objs.length).toBe(1); + expect(objs[0].get('child').get('hello')).toEqual('world'); + expect(objs[0].createdAt instanceof Date).toBe(true); done(); - }, (error) => { + }, (err) => { + fail('should not fail'); done(); }); }); diff --git a/src/RestQuery.js b/src/RestQuery.js index 9c391ab054..79a0a94c62 100644 --- a/src/RestQuery.js +++ b/src/RestQuery.js @@ -527,14 +527,14 @@ function findPointers(object, path) { } if (typeof object !== 'object') { - throw new Parse.Error(Parse.Error.INVALID_QUERY, 'can only include pointer fields'); + return []; } if (path.length == 0) { if (object.__type == 'Pointer') { return [object]; } - throw new Parse.Error(Parse.Error.INVALID_QUERY, 'can only include pointer fields'); + return []; } var subobject = object[path[0]];