From ea81473b0ee0894a727c7405ab2265c79536873f Mon Sep 17 00:00:00 2001 From: Artyom Zakharchenko Date: Tue, 7 Nov 2023 18:56:54 +0000 Subject: [PATCH 1/4] chore: resolve issue with unhandled promise when slot blocker timeout occurs --- ilc/client/TransitionManager/TransitionManager.js | 7 ++----- .../TransitionManager/TransitionManagerTimeout.spec.js | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/ilc/client/TransitionManager/TransitionManager.js b/ilc/client/TransitionManager/TransitionManager.js index d95e670f..708a2712 100644 --- a/ilc/client/TransitionManager/TransitionManager.js +++ b/ilc/client/TransitionManager/TransitionManager.js @@ -247,7 +247,7 @@ export class TransitionManager { }; #addTransitionBlocker = (transitionBlocker, slotKind) => { - const promise = transitionBlocker + transitionBlocker .then(() => { this.#removeTransitionBlocker(transitionBlocker.getId()); }) @@ -261,13 +261,10 @@ export class TransitionManager { error.message || `Transition blocker with name ${transitionBlocker.getId()} failed`, }), ); - - return; } }); - this.#transitionBlockers.add(transitionBlocker); - return promise; + this.#transitionBlockers.add(transitionBlocker); }; #transitionBlockerExists = (blockerId) => { diff --git a/ilc/client/TransitionManager/TransitionManagerTimeout.spec.js b/ilc/client/TransitionManager/TransitionManagerTimeout.spec.js index aac8e2f8..5bcbd183 100644 --- a/ilc/client/TransitionManager/TransitionManagerTimeout.spec.js +++ b/ilc/client/TransitionManager/TransitionManagerTimeout.spec.js @@ -6,7 +6,7 @@ import ilcEvents from '../constants/ilcEvents'; import { slotWillBe, TransitionManager } from './TransitionManager'; import { CssTrackedApp } from '../CssTrackedApp'; -describe('TransitionManager Timeout', () => { +describe.only('TransitionManager Timeout', () => { const locationHash = 'i-am-location-hash'; const logger = { From 4fba7de903b5a26ad748e719d3e5e1c173d231da Mon Sep 17 00:00:00 2001 From: Artyom Zakharchenko Date: Wed, 8 Nov 2023 08:25:49 +0000 Subject: [PATCH 2/4] test: remove only marker for test --- ilc/client/TransitionManager/TransitionManagerTimeout.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ilc/client/TransitionManager/TransitionManagerTimeout.spec.js b/ilc/client/TransitionManager/TransitionManagerTimeout.spec.js index 5bcbd183..aac8e2f8 100644 --- a/ilc/client/TransitionManager/TransitionManagerTimeout.spec.js +++ b/ilc/client/TransitionManager/TransitionManagerTimeout.spec.js @@ -6,7 +6,7 @@ import ilcEvents from '../constants/ilcEvents'; import { slotWillBe, TransitionManager } from './TransitionManager'; import { CssTrackedApp } from '../CssTrackedApp'; -describe.only('TransitionManager Timeout', () => { +describe('TransitionManager Timeout', () => { const locationHash = 'i-am-location-hash'; const logger = { From 1fa26e69e70cccb780322f79fead518fa3aac9ab Mon Sep 17 00:00:00 2001 From: Artyom Zakharchenko Date: Tue, 7 Nov 2023 21:38:12 +0000 Subject: [PATCH 3/4] chore: increase transition timeout to 60 sec --- ilc/client/Client.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ilc/client/Client.js b/ilc/client/Client.js index d734cd4f..bc9b66f0 100644 --- a/ilc/client/Client.js +++ b/ilc/client/Client.js @@ -83,7 +83,7 @@ export class Client { this.#errorHandlerManager = new ErrorHandlerManager(this.#logger, this.#registryService); - const transitionTimeout = 3000; + const transitionTimeout = 60000; this.#transitionManager = new TransitionManager( this.#logger, From 5abc3a122b04f6d5b4cf982e4a4b4f98f9826eb6 Mon Sep 17 00:00:00 2001 From: Artyom Zakharchenko Date: Wed, 8 Nov 2023 12:30:16 +0000 Subject: [PATCH 4/4] test: fix format rules --- ilc/client/Client.js | 11 ++++++++- ilc/package-lock.json | 22 ----------------- registry/package-lock.json | 49 -------------------------------------- 3 files changed, 10 insertions(+), 72 deletions(-) diff --git a/ilc/client/Client.js b/ilc/client/Client.js index bc9b66f0..667e1892 100644 --- a/ilc/client/Client.js +++ b/ilc/client/Client.js @@ -321,7 +321,16 @@ export class Client { throw new Error('onRouteChange should pass function handler as first argument'); } - window.addEventListener(singleSpaEvents.ROUTING_EVENT, handler); + window.addEventListener(singleSpaEvents.ROUTING_EVENT, (event) => { + const route = this.#router.getCurrentRoute(); + const ilcEvent = new CustomEvent('ilc:onRouteChange', { + detail: { + basePath: route.basePath, + reqUrl: route.reqUrl, + }, + }); + handler(event, ilcEvent); + }); return () => window.removeEventListener(singleSpaEvents.ROUTING_EVENT, handler); } diff --git a/ilc/package-lock.json b/ilc/package-lock.json index 94ecc7b1..6de5f1ef 100644 --- a/ilc/package-lock.json +++ b/ilc/package-lock.json @@ -63,7 +63,6 @@ "karma-parallel": "^0.3.1", "karma-sinon": "^1.0.5", "karma-sourcemap-loader": "^0.4.0", - "karma-spec-reporter": "^0.0.36", "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "nanohtml": "^1.10.0", @@ -4808,15 +4807,6 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -7516,18 +7506,6 @@ "graceful-fs": "^4.2.10" } }, - "node_modules/karma-spec-reporter": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.36.tgz", - "integrity": "sha512-11bvOl1x6ryKZph7kmbmMpbi8vsngEGxGOoeTlIcDaH3ab3j8aPJnZ+r+K/SS0sBSGy5VGkGYO2+hLct7hw/6w==", - "dev": true, - "dependencies": { - "colors": "1.4.0" - }, - "peerDependencies": { - "karma": ">=0.9" - } - }, "node_modules/karma-webpack": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz", diff --git a/registry/package-lock.json b/registry/package-lock.json index a7ae654c..d308703f 100644 --- a/registry/package-lock.json +++ b/registry/package-lock.json @@ -10,7 +10,6 @@ "license": "Apache-2.0", "dependencies": { "@namecheap/error-extender": "^1.2.0", - "@nc_ui/ilc-plugin-reporting-spaceship": "file:../../ilc-plugin-reporting-spaceship/nc_ui-ilc-plugin-reporting-spaceship-1.5.2.tgz", "@newrelic/native-metrics": "^10.0.1", "axios": "^0.26.1", "bcrypt": "^5.1.1", @@ -1582,35 +1581,6 @@ "resolved": "https://registry.npmjs.org/@namecheap/error-extender/-/error-extender-1.2.0.tgz", "integrity": "sha512-EQh8nDsV9LPTpa18DARIbIuIDf4d+MybGtDhixTld/5us7smcbGEpHvs8FxxP6bygQhntewDprSK52s4eQxVww==" }, - "node_modules/@nc_ui/ilc-plugin-reporting-spaceship": { - "version": "1.5.2", - "resolved": "file:../../ilc-plugin-reporting-spaceship/nc_ui-ilc-plugin-reporting-spaceship-1.5.2.tgz", - "integrity": "sha512-5RD4yfvnmGfmDY1/Ju8K9ZKQAPFvrKVcPERJBYVXKkIaSNgsaEQQQdxadAbiiVxIMyp/4MOHnBXA1OA/6F56AQ==", - "license": "UNLICENSED", - "dependencies": { - "@types/pino": "^7.0.4", - "@types/uniqid": "^5.3.2", - "http-headers": "^3.0.2", - "ilc-plugins-sdk": "file:../ilc-plugins-sdk/ilc-plugins-sdk-2.0.0.tgz", - "pino": "^8.16.0", - "uniqid": "^5.4.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@nc_ui/ilc-plugin-reporting-spaceship/node_modules/ilc-plugins-sdk": { - "version": "2.0.0", - "resolved": "file:../../ilc-plugins-sdk/ilc-plugins-sdk-2.0.0.tgz", - "integrity": "sha512-ZsTq1Z8utX/vWfTTY6QjEMCcXhJxONtzfJW7leL/37tLz/jKmE1u+wVLlDQma297GZ6zLv9s9sNH9gJV1OlWgw==", - "license": "Apache-2.0", - "dependencies": { - "fast-glob": "^3.3.1", - "http-headers": "^3.0.2", - "hyperid": "^3.1.1", - "pino": "^8.16.0" - } - }, "node_modules/@newrelic/aws-sdk": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/@newrelic/aws-sdk/-/aws-sdk-7.0.1.tgz", @@ -2743,15 +2713,6 @@ "@types/passport": "*" } }, - "node_modules/@types/pino": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@types/pino/-/pino-7.0.5.tgz", - "integrity": "sha512-wKoab31pknvILkxAF8ss+v9iNyhw5Iu/0jLtRkUD74cNfOOLJNnqfFKAv0r7wVaTQxRZtWrMpGfShwwBjOcgcg==", - "deprecated": "This is a stub types definition. pino provides its own type definitions, so you do not need this installed.", - "dependencies": { - "pino": "*" - } - }, "node_modules/@types/qs": { "version": "6.9.8", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", @@ -2829,11 +2790,6 @@ "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.3.tgz", "integrity": "sha512-6tOUG+nVHn0cJbVp25JFayS5UE6+xlbcNF9Lo9mU7U0zk3zeUShZied4YEQZjy1JBF043FSkdXw8YkUJuVtB5g==" }, - "node_modules/@types/uniqid": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/@types/uniqid/-/uniqid-5.3.2.tgz", - "integrity": "sha512-/NYoaZpWsnAJDsGYeMNDeG3p3fuUb4AiC7MfKxi5VSu18tXd08w6Ch0fKW94T4FeLXXZwZPoFgHA1O0rDYKyMQ==" - }, "node_modules/@types/url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/url-join/-/url-join-4.0.1.tgz", @@ -9559,11 +9515,6 @@ "string.fromcodepoint": "^0.2.1" } }, - "node_modules/uniqid": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-5.4.0.tgz", - "integrity": "sha512-38JRbJ4Fj94VmnC7G/J/5n5SC7Ab46OM5iNtSstB/ko3l1b5g7ALt4qzHFgGciFkyiRNtDXtLNb+VsxtMSE77A==" - }, "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",