From b63d0d6ec6ca918b7f64e62747042c4c5ecf5074 Mon Sep 17 00:00:00 2001 From: PolSpock Date: Fri, 27 Aug 2021 01:42:43 +0200 Subject: [PATCH 1/3] Test maxDistanceInKilometers error --- spec/ParseLiveQuery.spec.js | 263 ++++++++++++++++++++++++++++++++++++ 1 file changed, 263 insertions(+) diff --git a/spec/ParseLiveQuery.spec.js b/spec/ParseLiveQuery.spec.js index 65d1836c5f..837493f925 100644 --- a/spec/ParseLiveQuery.spec.js +++ b/spec/ParseLiveQuery.spec.js @@ -6,6 +6,269 @@ const validatorFail = () => { }; describe('ParseLiveQuery', function () { + jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; + + it('can subscribe to query', async done => { + await reconfigureServer({ + liveQuery: { + classNames: ['TestObject'], + }, + startLiveQueryServer: true, + verbose: false, + silent: true, + }); + const object = new TestObject(); + await object.save(); + + const query = new Parse.Query(TestObject); + query.equalTo('objectId', object.id); + const subscription = await query.subscribe(); + subscription.on('update', object => { + expect(object.get('foo')).toBe('bar'); + done(); + }); + object.set({ foo: 'bar' }); + await object.save(); + }); + + it('can query/find and return object with correct withinKilometers', async done => { + await reconfigureServer({ + liveQuery: { + classNames: ['TestObject'], + }, + startLiveQueryServer: true, + verbose: false, + silent: true, + }); + const object = new TestObject(); + const point = new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }); + object.set({ location: point }); + await object.save(); + + const query = new Parse.Query(TestObject); + query.withinKilometers('location', new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }), 2); + const results = await query.find(); + expect(results[0].id).toBe(object.id); + done(); + }); + + it('can query/find and return object with incorrect withinKilometers', async done => { + await reconfigureServer({ + liveQuery: { + classNames: ['TestObject'], + }, + startLiveQueryServer: true, + verbose: false, + silent: true, + }); + const object = new TestObject(); + const point = new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }); + object.set({ location: point }); + await object.save(); + + const query = new Parse.Query(TestObject); + query.withinKilometers('location', new Parse.GeoPoint({ latitude: 25.0, longitude: 4.0 }), 2); + const results = await query.find(); + expect(results[0]).toBe(undefined); + done(); + }); + + it('can subscribe to query and return object with withinKilometers', async done => { + await reconfigureServer({ + liveQuery: { + classNames: ['TestObject'], + }, + startLiveQueryServer: true, + verbose: false, + silent: true, + }); + const object = new TestObject(); + await object.save(); + + const query = new Parse.Query(TestObject); + query.withinKilometers('location', new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }), 2); + const subscription = await query.subscribe(); + subscription.on('enter', obj => { + console.log('enter'); + expect(obj.id).toBe(object.id); + done(); + }); + + const point = new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }); + object.set({ location: point }); + await object.save(); + }); + + it('can subscribe to query and return object with withinKilometers on leave', async done => { + await reconfigureServer({ + liveQuery: { + classNames: ['TestObject'], + }, + startLiveQueryServer: true, + verbose: false, + silent: true, + }); + const object = new TestObject(); + const firstPoint = new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }); + object.set({ location: firstPoint }); + await object.save(); + + const query = new Parse.Query(TestObject); + query.withinKilometers('location', new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }), 2); + const subscription = await query.subscribe(); + subscription.on('leave', obj => { + console.log('leave'); + expect(obj.id).toBe(object.id); + done(); + }); + + const secondPoint = new Parse.GeoPoint({ latitude: 20.0, longitude: -1.0 }); + object.set({ location: secondPoint }); + await object.save(); + }); + + it('can subscribe to query and return object with withinKilometers with last parameter on update', async done => { + await reconfigureServer({ + liveQuery: { + classNames: ['TestObject'], + }, + startLiveQueryServer: true, + verbose: true, + silent: false, + }); + const object = new TestObject(); + const firstPoint = new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }); + object.set({ location: firstPoint }); + await object.save(); + + const query = new Parse.Query(TestObject); + query.withinKilometers( + 'location', + new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }), + 2, + false + ); + const subscription = await query.subscribe(); + subscription.on('update', obj => { + console.log('update'); + expect(obj.id).toBe(object.id); + done(); + }); + + const secondPoint = new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }); + object.set({ location: secondPoint }); + await object.save(); + }); + + it('can subscribe to query and return object with withinKilometers without last parameter on update', async done => { + await reconfigureServer({ + liveQuery: { + classNames: ['TestObject'], + }, + startLiveQueryServer: true, + verbose: true, + silent: false, + }); + const object = new TestObject(); + const firstPoint = new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }); + object.set({ location: firstPoint }); + await object.save(); + + const query = new Parse.Query(TestObject); + query.withinKilometers('location', new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }), 2); + const subscription = await query.subscribe(); + subscription.on('update', obj => { + console.log('update'); + expect(obj.id).toBe(object.id); + done(); + }); + + const secondPoint = new Parse.GeoPoint({ latitude: 40.0, longitude: -30.0 }); + object.set({ location: secondPoint }); + await object.save(); + }); + + it('can subscribe to query and return object on enter with simple boolean', async done => { + await reconfigureServer({ + liveQuery: { + classNames: ['TestObject'], + }, + startLiveQueryServer: true, + verbose: false, + silent: true, + }); + const object = new TestObject(); + await object.save(); + + const query = new Parse.Query(TestObject); + query.equalTo('isActive', true); + const subscription = await query.subscribe(); + subscription.on('enter', obj => { + console.log('enter'); + expect(obj.get('isActive')).toBe(true); + done(); + }); + + object.set({ isActive: true }); + await object.save(); + }); + + it('can subscribe to query and return object on leave with simple boolean', async done => { + await reconfigureServer({ + liveQuery: { + classNames: ['TestObject'], + }, + startLiveQueryServer: true, + verbose: false, + silent: true, + }); + const object = new TestObject(); + await object.save(); + + const query = new Parse.Query(TestObject); + query.equalTo('isActive', true); + const subscription = await query.subscribe(); + + subscription.on('leave', obj => { + console.log('leave'); + expect(obj.get('isActive')).toBe(false); + done(); + }); + + object.set({ isActive: true }); + await object.save(); + + object.set({ isActive: false }); + await object.save(); + }); + + it('can subscribe to query and return object on update with simple boolean', async done => { + await reconfigureServer({ + liveQuery: { + classNames: ['TestObject'], + }, + startLiveQueryServer: true, + verbose: false, + silent: true, + }); + const object = new TestObject(); + object.set({ isActive: true }); + await object.save(); + + const query = new Parse.Query(TestObject); + query.equalTo('isActive', true); + const subscription = await query.subscribe(); + + subscription.on('update', obj => { + console.log('update'); + expect(obj.get('isActive')).toBe(true); + done(); + }); + + object.set({ isActive: true }); + await object.save(); + }); + it('access user on onLiveQueryEvent disconnect', async done => { await reconfigureServer({ liveQuery: { From 3f9e175b1783e22b25732013b4a3e87569b64daa Mon Sep 17 00:00:00 2001 From: PolSpock Date: Fri, 27 Aug 2021 03:23:53 +0200 Subject: [PATCH 2/3] Edit on ParseLiveQuery test --- spec/ParseLiveQuery.spec.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spec/ParseLiveQuery.spec.js b/spec/ParseLiveQuery.spec.js index 837493f925..6442ea17b3 100644 --- a/spec/ParseLiveQuery.spec.js +++ b/spec/ParseLiveQuery.spec.js @@ -31,6 +31,7 @@ describe('ParseLiveQuery', function () { await object.save(); }); + /* it('can query/find and return object with correct withinKilometers', async done => { await reconfigureServer({ liveQuery: { @@ -52,7 +53,7 @@ describe('ParseLiveQuery', function () { done(); }); - it('can query/find and return object with incorrect withinKilometers', async done => { + fit('can query/find and return object with incorrect withinKilometers', async done => { await reconfigureServer({ liveQuery: { classNames: ['TestObject'], @@ -126,6 +127,7 @@ describe('ParseLiveQuery', function () { object.set({ location: secondPoint }); await object.save(); }); + */ it('can subscribe to query and return object with withinKilometers with last parameter on update', async done => { await reconfigureServer({ @@ -188,6 +190,7 @@ describe('ParseLiveQuery', function () { await object.save(); }); + /* it('can subscribe to query and return object on enter with simple boolean', async done => { await reconfigureServer({ liveQuery: { @@ -268,6 +271,7 @@ describe('ParseLiveQuery', function () { object.set({ isActive: true }); await object.save(); }); + */ it('access user on onLiveQueryEvent disconnect', async done => { await reconfigureServer({ From 723211d245bdbb6b33f7e3ca086ee7d42250a71c Mon Sep 17 00:00:00 2001 From: PolSpock Date: Fri, 27 Aug 2021 03:44:50 +0200 Subject: [PATCH 3/3] Remove fit --- spec/ParseLiveQuery.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/ParseLiveQuery.spec.js b/spec/ParseLiveQuery.spec.js index 6442ea17b3..97c6a50593 100644 --- a/spec/ParseLiveQuery.spec.js +++ b/spec/ParseLiveQuery.spec.js @@ -53,7 +53,7 @@ describe('ParseLiveQuery', function () { done(); }); - fit('can query/find and return object with incorrect withinKilometers', async done => { + it('can query/find and return object with incorrect withinKilometers', async done => { await reconfigureServer({ liveQuery: { classNames: ['TestObject'],