Skip to content

Commit e3cb473

Browse files
committed
Merge pull request #1185 from ParsePlatform/flovilmart.arrayPointersInQuery
fixes problem affecting finding array pointers
2 parents ebfbe57 + 4ff52de commit e3cb473

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

spec/ParseQuery.spec.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2170,4 +2170,43 @@ describe('Parse.Query testing', () => {
21702170

21712171
});
21722172

2173+
it('should find objects with array of pointers', (done) => {
2174+
var objects = [];
2175+
while(objects.length != 5) {
2176+
var object = new Parse.Object('ContainedObject');
2177+
object.set('index', objects.length);
2178+
objects.push(object);
2179+
}
2180+
2181+
Parse.Object.saveAll(objects).then((objects) => {
2182+
var container = new Parse.Object('Container');
2183+
var pointers = objects.map((obj) => {
2184+
return {
2185+
__type: 'Pointer',
2186+
className: 'ContainedObject',
2187+
objectId: obj.id
2188+
}
2189+
})
2190+
container.set('objects', pointers);
2191+
let container2 = new Parse.Object('Container');
2192+
container2.set('objects', pointers.slice(2, 3));
2193+
return Parse.Object.saveAll([container, container2]);
2194+
}).then(() => {
2195+
let inQuery = new Parse.Query('ContainedObject');
2196+
inQuery.greaterThanOrEqualTo('index', 1);
2197+
let query = new Parse.Query('Container');
2198+
query.matchesQuery('objects', inQuery);
2199+
return query.find();
2200+
}).then((results) => {
2201+
if (results) {
2202+
expect(results.length).toBe(2);
2203+
}
2204+
done();
2205+
}).fail((err) => {
2206+
console.error(err);
2207+
fail('should not fail');
2208+
done();
2209+
})
2210+
})
2211+
21732212
});

src/transform.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ function transformConstraint(constraint, inArray) {
452452
'bad ' + key + ' value');
453453
}
454454
answer[key] = arr.map((v) => {
455-
return transformAtom(v, true);
455+
return transformAtom(v, true, { inArray: inArray });
456456
});
457457
break;
458458

0 commit comments

Comments
 (0)