Add doesNotMatchKeyInQuery case...
This commit is contained in:
@@ -3248,4 +3248,47 @@ describe('Parse.Query testing', () => {
|
|||||||
}))
|
}))
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should match complex structure with dot notation when using matchesKeyInQuery', function(done) {
|
||||||
|
const group1 = new Parse.Object('Group', {
|
||||||
|
name: 'Group #1'
|
||||||
|
});
|
||||||
|
|
||||||
|
const group2 = new Parse.Object('Group', {
|
||||||
|
name: 'Group #2'
|
||||||
|
});
|
||||||
|
|
||||||
|
Parse.Object.saveAll([group1, group2])
|
||||||
|
.then(() => {
|
||||||
|
const role1 = new Parse.Object('Role', {
|
||||||
|
name: 'Role #1',
|
||||||
|
type: 'x',
|
||||||
|
belongsTo: group1
|
||||||
|
});
|
||||||
|
|
||||||
|
const role2 = new Parse.Object('Role', {
|
||||||
|
name: 'Role #2',
|
||||||
|
type: 'y',
|
||||||
|
belongsTo: group1
|
||||||
|
});
|
||||||
|
|
||||||
|
return Parse.Object.saveAll([role1, role2]);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
const rolesOfTypeX = new Parse.Query('Role');
|
||||||
|
rolesOfTypeX.equalTo('type', 'x');
|
||||||
|
|
||||||
|
const groupsWithRoleX = new Parse.Query('Group');
|
||||||
|
groupsWithRoleX.doesNotMatchKeyInQuery('objectId', 'belongsTo.objectId', rolesOfTypeX);
|
||||||
|
|
||||||
|
groupsWithRoleX.find(expectSuccess({
|
||||||
|
success: function(results) {
|
||||||
|
equal(results.length, 1);
|
||||||
|
equal(results[0].get('name'), group2.get('name'));
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -392,7 +392,7 @@ RestQuery.prototype.replaceSelect = function() {
|
|||||||
const transformDontSelect = (dontSelectObject, key, objects) => {
|
const transformDontSelect = (dontSelectObject, key, objects) => {
|
||||||
var values = [];
|
var values = [];
|
||||||
for (var result of objects) {
|
for (var result of objects) {
|
||||||
values.push(result[key]);
|
values.push(key.split('.').reduce((o,i)=>o[i], result));
|
||||||
}
|
}
|
||||||
delete dontSelectObject['$dontSelect'];
|
delete dontSelectObject['$dontSelect'];
|
||||||
if (Array.isArray(dontSelectObject['$nin'])) {
|
if (Array.isArray(dontSelectObject['$nin'])) {
|
||||||
|
|||||||
Reference in New Issue
Block a user