From c42fb16c08b1067a45f310bac335a373ef709c82 Mon Sep 17 00:00:00 2001 From: Marek Libra Date: Tue, 27 Nov 2018 13:15:03 +0100 Subject: [PATCH] [OKD-core] Make @novnc working in jest --- frontend/package.json | 5 +++-- frontend/polyfills-kubevirt.js | 8 ++++++++ frontend/public/kubevirt/components/utils/resources.js | 2 +- frontend/webpack.config.ts | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 frontend/polyfills-kubevirt.js diff --git a/frontend/package.json b/frontend/package.json index be20b2bb7e1..142b1fad533 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -33,14 +33,15 @@ ".(ts|tsx|js|jsx)": "./node_modules/ts-jest/preprocessor.js" }, "transformIgnorePatterns": [ - "/node_modules/(?!lodash-es/.*)" + "/node_modules/(?!(lodash-es|@novnc)/.*)" ], "testRegex": "/__tests__/.*\\.(ts|tsx|js|jsx)$", "setupFiles": [ "./__mocks__/requestAnimationFrame.js", "./__mocks__/localStorage.ts", "./__mocks__/matchMedia.js", - "./before-tests.js" + "./before-tests.js", + "./polyfills-kubevirt.js" ], "coverageDirectory": "__coverage__", "coverageReporters": [ diff --git a/frontend/polyfills-kubevirt.js b/frontend/polyfills-kubevirt.js new file mode 100644 index 00000000000..ae7384b8b23 --- /dev/null +++ b/frontend/polyfills-kubevirt.js @@ -0,0 +1,8 @@ +/* eslint-disable */ + +global.MutationObserver = global.MutationObserver || class { + constructor(callback) {} + disconnect() {} + observe(element, initObject) {} +}; + diff --git a/frontend/public/kubevirt/components/utils/resources.js b/frontend/public/kubevirt/components/utils/resources.js index 33ec9be31a3..b9f5947418f 100644 --- a/frontend/public/kubevirt/components/utils/resources.js +++ b/frontend/public/kubevirt/components/utils/resources.js @@ -56,7 +56,7 @@ export const getVncConnectionDetails = vmi => { const encrypt = window.location.protocol === 'https:'; // the novnc library requires protocol to be specified so the URL must be absolute - including host:port return { - encrypt, // whether ws or wss to be used + encrypt: isEncrypted(), // whether ws or wss to be used host: window.location.hostname, port: window.location.port || (encrypt ? '443' : '80'), path: `${context}/${apiPath}/vnc${query}`, diff --git a/frontend/webpack.config.ts b/frontend/webpack.config.ts index 41f94658116..221f1cf2dec 100644 --- a/frontend/webpack.config.ts +++ b/frontend/webpack.config.ts @@ -34,7 +34,7 @@ let config: webpack.Configuration = { { test: /\.glsl$/, loader: 'raw!glslify' }, { test: /(\.jsx?)|(\.tsx?)$/, - exclude: /node_modules/, + exclude: /node_modules\/(?!(@novnc)\/).*/, use: [ { loader: 'cache-loader' }, {