fix: Live query throws error when constraint notEqualTo is set to null (#8835)

This commit is contained in:
Rahul Lanjewar
2024-06-12 01:01:10 +05:30
committed by GitHub
parent 716925ec53
commit 11d3e484df
2 changed files with 30 additions and 1 deletions

View File

@@ -1269,4 +1269,33 @@ describe('ParseLiveQuery', function () {
expect(object2.id).toBeDefined();
expect(object3.id).toBeDefined();
});
it('triggers query event with constraint not equal to null', async () => {
await reconfigureServer({
liveQuery: {
classNames: ['TestObject'],
},
startLiveQueryServer: true,
verbose: false,
silent: true,
});
const spy = {
create(obj) {
expect(obj.attributes.foo).toEqual('bar');
},
};
const createSpy = spyOn(spy, 'create');
const query = new Parse.Query(TestObject);
query.notEqualTo('foo', null);
const subscription = await query.subscribe();
subscription.on('create', spy.create);
const object1 = new TestObject();
object1.set('foo', 'bar');
await object1.save();
await new Promise(resolve => setTimeout(resolve, 100));
expect(createSpy).toHaveBeenCalledTimes(1);
});
});

View File

@@ -223,7 +223,7 @@ function matchesKeyConstraints(object, key, constraints) {
// More complex cases
for (var condition in constraints) {
compareTo = constraints[condition];
if (compareTo.__type) {
if (compareTo?.__type) {
compareTo = Parse._decode(key, compareTo);
}
switch (condition) {