fix: Live query throws error when constraint notEqualTo is set to null (#8835)
This commit is contained in:
@@ -1269,4 +1269,33 @@ describe('ParseLiveQuery', function () {
|
|||||||
expect(object2.id).toBeDefined();
|
expect(object2.id).toBeDefined();
|
||||||
expect(object3.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);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ function matchesKeyConstraints(object, key, constraints) {
|
|||||||
// More complex cases
|
// More complex cases
|
||||||
for (var condition in constraints) {
|
for (var condition in constraints) {
|
||||||
compareTo = constraints[condition];
|
compareTo = constraints[condition];
|
||||||
if (compareTo.__type) {
|
if (compareTo?.__type) {
|
||||||
compareTo = Parse._decode(key, compareTo);
|
compareTo = Parse._decode(key, compareTo);
|
||||||
}
|
}
|
||||||
switch (condition) {
|
switch (condition) {
|
||||||
|
|||||||
Reference in New Issue
Block a user