Merge pull request #1185 from ParsePlatform/flovilmart.arrayPointersInQuery

fixes problem affecting finding array pointers
This commit is contained in:
Florent Vilmart
2016-03-25 08:24:23 -04:00
2 changed files with 40 additions and 1 deletions

View File

@@ -2170,4 +2170,43 @@ describe('Parse.Query testing', () => {
});
it('should find objects with array of pointers', (done) => {
var objects = [];
while(objects.length != 5) {
var object = new Parse.Object('ContainedObject');
object.set('index', objects.length);
objects.push(object);
}
Parse.Object.saveAll(objects).then((objects) => {
var container = new Parse.Object('Container');
var pointers = objects.map((obj) => {
return {
__type: 'Pointer',
className: 'ContainedObject',
objectId: obj.id
}
})
container.set('objects', pointers);
let container2 = new Parse.Object('Container');
container2.set('objects', pointers.slice(2, 3));
return Parse.Object.saveAll([container, container2]);
}).then(() => {
let inQuery = new Parse.Query('ContainedObject');
inQuery.greaterThanOrEqualTo('index', 1);
let query = new Parse.Query('Container');
query.matchesQuery('objects', inQuery);
return query.find();
}).then((results) => {
if (results) {
expect(results.length).toBe(2);
}
done();
}).fail((err) => {
console.error(err);
fail('should not fail');
done();
})
})
});

View File

@@ -452,7 +452,7 @@ function transformConstraint(constraint, inArray) {
'bad ' + key + ' value');
}
answer[key] = arr.map((v) => {
return transformAtom(v, true);
return transformAtom(v, true, { inArray: inArray });
});
break;