fix: Parse.Query.containedIn and matchesQuery do not work with nested objects (#9738)
This commit is contained in:
@@ -5306,4 +5306,72 @@ describe('Parse.Query testing', () => {
|
||||
expect(score).toEqual([1]);
|
||||
}, { useMasterKey: true });
|
||||
});
|
||||
|
||||
describe_only_db('mongo')('query nested keys', () => {
|
||||
it('queries nested key using equalTo', async () => {
|
||||
const child = new Parse.Object('Child');
|
||||
child.set('key', 'value');
|
||||
await child.save();
|
||||
|
||||
const parent = new Parse.Object('Parent');
|
||||
parent.set('some', {
|
||||
nested: {
|
||||
key: {
|
||||
child,
|
||||
},
|
||||
},
|
||||
});
|
||||
await parent.save();
|
||||
|
||||
const query1 = await new Parse.Query('Parent')
|
||||
.equalTo('some.nested.key.child', child)
|
||||
.find();
|
||||
|
||||
expect(query1.length).toEqual(1);
|
||||
});
|
||||
|
||||
it('queries nested key using containedIn', async () => {
|
||||
const child = new Parse.Object('Child');
|
||||
child.set('key', 'value');
|
||||
await child.save();
|
||||
|
||||
const parent = new Parse.Object('Parent');
|
||||
parent.set('some', {
|
||||
nested: {
|
||||
key: {
|
||||
child,
|
||||
},
|
||||
},
|
||||
});
|
||||
await parent.save();
|
||||
|
||||
const query1 = await new Parse.Query('Parent')
|
||||
.containedIn('some.nested.key.child', [child])
|
||||
.find();
|
||||
|
||||
expect(query1.length).toEqual(1);
|
||||
});
|
||||
|
||||
it('queries nested key using matchesQuery', async () => {
|
||||
const child = new Parse.Object('Child');
|
||||
child.set('key', 'value');
|
||||
await child.save();
|
||||
|
||||
const parent = new Parse.Object('Parent');
|
||||
parent.set('some', {
|
||||
nested: {
|
||||
key: {
|
||||
child,
|
||||
},
|
||||
},
|
||||
});
|
||||
await parent.save();
|
||||
|
||||
const query1 = await new Parse.Query('Parent')
|
||||
.matchesQuery('some.nested.key.child', new Parse.Query('Child').equalTo('key', 'value'))
|
||||
.find();
|
||||
|
||||
expect(query1.length).toEqual(1);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user