From 93fd9e7412bc0b080d9328b0a4209886cb3f0e8b Mon Sep 17 00:00:00 2001 From: Frans Date: Thu, 28 Oct 2021 16:45:12 -0600 Subject: [PATCH 1/9] fix: repaired CI (#7659) and added spec reporter --- spec/ParseLiveQuery.spec.js | 6 ++++-- spec/ParseUser.spec.js | 10 ++++++++-- spec/helper.js | 12 ++++++++++++ 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/spec/ParseLiveQuery.spec.js b/spec/ParseLiveQuery.spec.js index e4ace5045f8..e5858c98982 100644 --- a/spec/ParseLiveQuery.spec.js +++ b/spec/ParseLiveQuery.spec.js @@ -949,7 +949,7 @@ describe('ParseLiveQuery', function () { const response = (obj, prev) => { expect(obj.get('sessionToken')).toBeUndefined(); expect(obj.sessionToken).toBeUndefined(); - expect(prev?.sessionToken).toBeUndefined(); + expect(prev && prev.sessionToken).toBeUndefined(); if (prev && prev.get) { expect(prev.get('sessionToken')).toBeUndefined(); } @@ -967,8 +967,10 @@ describe('ParseLiveQuery', function () { await user.save(); user.set('yolo', 'bar'); await user.save(); + user.set('foo', 'bar'); + await user.save(); await user.destroy(); - await new Promise(resolve => process.nextTick(resolve)); + await new Promise(resolve => setTimeout(resolve, 500)); for (const key of events) { expect(calls[key]).toHaveBeenCalled(); } diff --git a/spec/ParseUser.spec.js b/spec/ParseUser.spec.js index 18ab1657b7b..bcfbd07e2c8 100644 --- a/spec/ParseUser.spec.js +++ b/spec/ParseUser.spec.js @@ -3948,7 +3948,7 @@ describe('Parse.User testing', () => { const response = (obj, prev) => { expect(obj.get('authData')).toBeUndefined(); expect(obj.authData).toBeUndefined(); - expect(prev?.authData).toBeUndefined(); + expect(prev && prev.authData).toBeUndefined(); if (prev && prev.get) { expect(prev.get('authData')).toBeUndefined(); } @@ -3967,11 +3967,17 @@ describe('Parse.User testing', () => { await user.save(); user.set('yolo', 'bar'); await user.save(); + user.unset('foo'); + await user.save(); await user.destroy(); - await new Promise(resolve => process.nextTick(resolve)); + await new Promise(resolve => setTimeout(resolve, 500)); for (const key of events) { expect(calls[key]).toHaveBeenCalled(); } + subscription.unsubscribe(); + const client = await Parse.CoreManager.getLiveQueryController().getDefaultLiveQueryClient(); + client.close(); + await new Promise(resolve => setTimeout(resolve, 500)); }); describe('issue #4897', () => { diff --git a/spec/helper.js b/spec/helper.js index a7f6cf22805..af59a321826 100644 --- a/spec/helper.js +++ b/spec/helper.js @@ -2,6 +2,18 @@ // Sets up a Parse API server for testing. jasmine.DEFAULT_TIMEOUT_INTERVAL = process.env.PARSE_SERVER_TEST_TIMEOUT || 5000; +const SpecReporter = require('jasmine-spec-reporter').SpecReporter; + +jasmine.getEnv().clearReporters(); // remove default reporter logs +jasmine.getEnv().addReporter( + new SpecReporter({ + // add jasmine-spec-reporter + spec: { + displayPending: true, + }, + }) +); + global.on_db = (db, callback, elseCallback) => { if (process.env.PARSE_SERVER_TEST_DB == db) { return callback(); From 570944902ed3c02d4339ad961397508c61f28d00 Mon Sep 17 00:00:00 2001 From: Frans Date: Thu, 28 Oct 2021 17:06:58 -0600 Subject: [PATCH 2/9] added updated package.json + lock --- package-lock.json | 9 +++++++++ package.json | 1 + 2 files changed, 10 insertions(+) diff --git a/package-lock.json b/package-lock.json index 96fcc70b415..887686a2d55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8338,6 +8338,15 @@ "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==", "dev": true }, + "jasmine-spec-reporter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", + "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", + "dev": true, + "requires": { + "colors": "1.4.0" + } + }, "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", diff --git a/package.json b/package.json index 12874fce61c..4a0cd9928a2 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,7 @@ "form-data": "3.0.0", "husky": "4.2.5", "jasmine": "3.5.0", + "jasmine-spec-reporter": "^7.0.0", "jsdoc": "3.6.7", "jsdoc-babel": "0.5.0", "lint-staged": "10.2.3", From d6053b92697cf9382bc9a972e7be05e629939270 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Sat, 30 Oct 2021 18:55:11 +0200 Subject: [PATCH 3/9] reduce timeout --- spec/ParseLiveQuery.spec.js | 2 +- spec/ParseUser.spec.js | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/spec/ParseLiveQuery.spec.js b/spec/ParseLiveQuery.spec.js index e5858c98982..1ba1cacbcca 100644 --- a/spec/ParseLiveQuery.spec.js +++ b/spec/ParseLiveQuery.spec.js @@ -970,7 +970,7 @@ describe('ParseLiveQuery', function () { user.set('foo', 'bar'); await user.save(); await user.destroy(); - await new Promise(resolve => setTimeout(resolve, 500)); + await new Promise(resolve => setTimeout(resolve, 10)); for (const key of events) { expect(calls[key]).toHaveBeenCalled(); } diff --git a/spec/ParseUser.spec.js b/spec/ParseUser.spec.js index bcfbd07e2c8..18d2f302623 100644 --- a/spec/ParseUser.spec.js +++ b/spec/ParseUser.spec.js @@ -3968,16 +3968,15 @@ describe('Parse.User testing', () => { user.set('yolo', 'bar'); await user.save(); user.unset('foo'); - await user.save(); await user.destroy(); - await new Promise(resolve => setTimeout(resolve, 500)); + await new Promise(resolve => setTimeout(resolve, 10)); for (const key of events) { expect(calls[key]).toHaveBeenCalled(); } subscription.unsubscribe(); const client = await Parse.CoreManager.getLiveQueryController().getDefaultLiveQueryClient(); client.close(); - await new Promise(resolve => setTimeout(resolve, 500)); + await new Promise(resolve => setTimeout(resolve, 10)); }); describe('issue #4897', () => { From ef055eb495dc74e6d462615f8458095ab431f6f9 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Sat, 30 Oct 2021 18:55:55 +0200 Subject: [PATCH 4/9] remove unnecessary code --- spec/ParseLiveQuery.spec.js | 2 -- spec/ParseUser.spec.js | 1 - 2 files changed, 3 deletions(-) diff --git a/spec/ParseLiveQuery.spec.js b/spec/ParseLiveQuery.spec.js index 1ba1cacbcca..906d5daf029 100644 --- a/spec/ParseLiveQuery.spec.js +++ b/spec/ParseLiveQuery.spec.js @@ -967,8 +967,6 @@ describe('ParseLiveQuery', function () { await user.save(); user.set('yolo', 'bar'); await user.save(); - user.set('foo', 'bar'); - await user.save(); await user.destroy(); await new Promise(resolve => setTimeout(resolve, 10)); for (const key of events) { diff --git a/spec/ParseUser.spec.js b/spec/ParseUser.spec.js index 18d2f302623..49456d2ea79 100644 --- a/spec/ParseUser.spec.js +++ b/spec/ParseUser.spec.js @@ -3967,7 +3967,6 @@ describe('Parse.User testing', () => { await user.save(); user.set('yolo', 'bar'); await user.save(); - user.unset('foo'); await user.destroy(); await new Promise(resolve => setTimeout(resolve, 10)); for (const key of events) { From 3c3f42d84b71bc3eb1e5fbfc6ae7cedfc7ff44ee Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Sat, 30 Oct 2021 18:57:43 +0200 Subject: [PATCH 5/9] remove dependency range --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4a0cd9928a2..83e9fd46511 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "form-data": "3.0.0", "husky": "4.2.5", "jasmine": "3.5.0", - "jasmine-spec-reporter": "^7.0.0", + "jasmine-spec-reporter": "7.0.0", "jsdoc": "3.6.7", "jsdoc-babel": "0.5.0", "lint-staged": "10.2.3", From 30451e2c1c633f01f3aa67fe5b7b558f50b7ab9d Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Sat, 30 Oct 2021 18:59:31 +0200 Subject: [PATCH 6/9] remove empty line --- spec/ParseUser.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/ParseUser.spec.js b/spec/ParseUser.spec.js index 49456d2ea79..6c02cae7cf3 100644 --- a/spec/ParseUser.spec.js +++ b/spec/ParseUser.spec.js @@ -3960,7 +3960,6 @@ describe('Parse.User testing', () => { subscription.on(key, calls[key]); } const user = await Parse.User._logInWith('facebook'); - user.set('foo', 'bar'); await user.save(); user.unset('foo'); From 703dbd45909af041b003ce58169878908137b529 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Sat, 30 Oct 2021 19:07:41 +0200 Subject: [PATCH 7/9] refactor spec reporter according to alpha --- spec/helper.js | 17 +++++------------ spec/support/CurrentSpecReporter.js | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 spec/support/CurrentSpecReporter.js diff --git a/spec/helper.js b/spec/helper.js index af59a321826..d9e9b77797c 100644 --- a/spec/helper.js +++ b/spec/helper.js @@ -1,18 +1,11 @@ 'use strict'; +const CurrentSpecReporter = require('./support/CurrentSpecReporter.js'); +const { SpecReporter } = require('jasmine-spec-reporter'); + // Sets up a Parse API server for testing. jasmine.DEFAULT_TIMEOUT_INTERVAL = process.env.PARSE_SERVER_TEST_TIMEOUT || 5000; - -const SpecReporter = require('jasmine-spec-reporter').SpecReporter; - -jasmine.getEnv().clearReporters(); // remove default reporter logs -jasmine.getEnv().addReporter( - new SpecReporter({ - // add jasmine-spec-reporter - spec: { - displayPending: true, - }, - }) -); +jasmine.getEnv().addReporter(new CurrentSpecReporter()); +jasmine.getEnv().addReporter(new SpecReporter()); global.on_db = (db, callback, elseCallback) => { if (process.env.PARSE_SERVER_TEST_DB == db) { diff --git a/spec/support/CurrentSpecReporter.js b/spec/support/CurrentSpecReporter.js new file mode 100644 index 00000000000..3158e21eae2 --- /dev/null +++ b/spec/support/CurrentSpecReporter.js @@ -0,0 +1,15 @@ +// Sets a global variable to the current test spec +// ex: global.currentSpec.description + +global.currentSpec = null; + +class CurrentSpecReporter { + specStarted(spec) { + global.currentSpec = spec; + } + specDone() { + global.currentSpec = null; + } +} + +module.exports = CurrentSpecReporter; From 30c9bae6a73d938a6ee1b8f24fc8cebdaa3cce7e Mon Sep 17 00:00:00 2001 From: Frans Date: Sat, 30 Oct 2021 13:21:01 -0600 Subject: [PATCH 8/9] reduced ParseLivequery.spec.js timeouts --- spec/ParseLiveQuery.spec.js | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/spec/ParseLiveQuery.spec.js b/spec/ParseLiveQuery.spec.js index e5858c98982..6b527b50f61 100644 --- a/spec/ParseLiveQuery.spec.js +++ b/spec/ParseLiveQuery.spec.js @@ -5,6 +5,8 @@ const validatorFail = () => { throw 'you are not authorized'; }; +console.log('jasmine.ASYNC_TEST_WAIT_TIME=' + jasmine.ASYNC_TEST_WAIT_TIME); + describe('ParseLiveQuery', function () { it('access user on onLiveQueryEvent disconnect', async done => { await reconfigureServer({ @@ -310,14 +312,10 @@ describe('ParseLiveQuery', function () { Parse.Cloud.afterLiveQueryEvent('TestObject', req => { const current = req.object; const original = req.original; - - setTimeout(() => { - done(); - }, 2000); - if (current.get('foo') != original.get('foo')) { req.sendEvent = false; } + setTimeout(done, 1000); }); const query = new Parse.Query(TestObject); @@ -733,9 +731,7 @@ describe('ParseLiveQuery', function () { }); object.set({ foo: 'bar' }); await object.save(); - setTimeout(async () => { - done(); - }, 1000); + setTimeout(done, 1000); }); it('can return a new beforeSubscribe query', async done => { @@ -922,9 +918,9 @@ describe('ParseLiveQuery', function () { }); await obj1.save(); await Parse.User.logOut(); - await new Promise(resolve => setTimeout(resolve, 200)); + await new Promise(resolve => setTimeout(resolve, 100)); await obj2.save(); - await new Promise(resolve => setTimeout(resolve, 200)); + await new Promise(resolve => setTimeout(resolve, 100)); done(); }); @@ -970,7 +966,7 @@ describe('ParseLiveQuery', function () { user.set('foo', 'bar'); await user.save(); await user.destroy(); - await new Promise(resolve => setTimeout(resolve, 500)); + await new Promise(resolve => setTimeout(resolve, 10)); for (const key of events) { expect(calls[key]).toHaveBeenCalled(); } @@ -980,8 +976,6 @@ describe('ParseLiveQuery', function () { const client = await Parse.CoreManager.getLiveQueryController().getDefaultLiveQueryClient(); client.close(); // Wait for live query client to disconnect - setTimeout(() => { - done(); - }, 1000); + setTimeout(done, 10); }); }); From d032063fe59f2cee537d46f4dfc2e2505e275609 Mon Sep 17 00:00:00 2001 From: Frans Date: Sat, 30 Oct 2021 14:03:47 -0600 Subject: [PATCH 9/9] remove console.log --- spec/ParseLiveQuery.spec.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/spec/ParseLiveQuery.spec.js b/spec/ParseLiveQuery.spec.js index 23545e88d2b..08f047b4a55 100644 --- a/spec/ParseLiveQuery.spec.js +++ b/spec/ParseLiveQuery.spec.js @@ -5,8 +5,6 @@ const validatorFail = () => { throw 'you are not authorized'; }; -console.log('jasmine.ASYNC_TEST_WAIT_TIME=' + jasmine.ASYNC_TEST_WAIT_TIME); - describe('ParseLiveQuery', function () { it('access user on onLiveQueryEvent disconnect', async done => { await reconfigureServer({