From 6586c9c9e4ac564031b083abd08bdfbec4fa5e53 Mon Sep 17 00:00:00 2001 From: Kautilya Tripathi Date: Tue, 14 Nov 2023 12:39:17 +0530 Subject: [PATCH] frontend: fix indexDB test suite indexDB is a global identifier and it doesn't need an import. But when running in test environment it was failing as it was not defined. Signed-off-by: Kautilya Tripathi --- frontend/package.json | 2 +- frontend/src/stateless/index.ts | 23 +++++++++++++++++++---- plugins/headlamp-plugin/package.json | 2 ++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index bfbe6c36974..ef9d3c13263 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -44,6 +44,7 @@ "eslint-plugin-react-hooks": "^4.2.0", "eslint-plugin-simple-import-sort": "^7.0.0", "eslint-plugin-unused-imports": "^1.1.5", + "fake-indexeddb": "^5.0.1", "github-markdown-css": "^5.1.0", "https-browserify": "^1.0.0", "humanize-duration": "^3.27.2", @@ -193,7 +194,6 @@ "@testing-library/user-event": "^14.5.1", "@types/redux-mock-store": "^1.0.4", "fetch-mock": "^9.11.0", - "fake-indexeddb": "^5.0.1", "http-proxy-middleware": "^2.0.1", "husky": "^4.3.8", "i18next-parser": "^4.7.0", diff --git a/frontend/src/stateless/index.ts b/frontend/src/stateless/index.ts index 75243974071..70d82d368bd 100644 --- a/frontend/src/stateless/index.ts +++ b/frontend/src/stateless/index.ts @@ -1,4 +1,4 @@ -// import 'fake-indexeddb/auto'; +import { indexedDB as indexedDBtest } from 'fake-indexeddb'; import * as jsyaml from 'js-yaml'; import { v4 as uuidv4 } from 'uuid'; @@ -43,7 +43,12 @@ interface KubeconfigObject { */ export function storeStatelessClusterKubeconfig(kubeconfig: any): Promise { return new Promise((resolve, reject) => { - const request = indexedDB.open('kubeconfigs', 1); + let request; + if (process.env.NODE_ENV === 'test') { + request = indexedDBtest.open('kubeconfigs', 1); + } else { + request = indexedDB.open('kubeconfigs', 1); + } request.onupgradeneeded = function (event: any) { const db = event.target ? event.target.result : null; @@ -96,7 +101,12 @@ export function storeStatelessClusterKubeconfig(kubeconfig: any): Promise */ export function getStatelessClusterKubeConfigs(): Promise { return new Promise((resolve, reject) => { - const request = indexedDB.open('kubeconfigs', 1); + let request; + if (process.env.NODE_ENV === 'test') { + request = indexedDBtest.open('kubeconfigs', 1); + } else { + request = indexedDB.open('kubeconfigs', 1); + } request.onupgradeneeded = function (event: any) { const db = event.target ? event.target.result : null; @@ -148,7 +158,12 @@ export function getStatelessClusterKubeConfigs(): Promise { export function findKubeconfigByClusterName(clusterName: string): Promise { return new Promise(async (resolve, reject) => { try { - const request = indexedDB.open('kubeconfigs', 1); + let request; + if (process.env.NODE_ENV === 'test') { + request = indexedDBtest.open('kubeconfigs', 1); + } else { + request = indexedDB.open('kubeconfigs', 1); + } request.onupgradeneeded = function (event: any) { const db = event.target ? event.target.result : null; diff --git a/plugins/headlamp-plugin/package.json b/plugins/headlamp-plugin/package.json index 34aecbed537..194250048a4 100644 --- a/plugins/headlamp-plugin/package.json +++ b/plugins/headlamp-plugin/package.json @@ -78,6 +78,7 @@ "eslint-plugin-react-hooks": "^4.2.0", "eslint-plugin-simple-import-sort": "^7.0.0", "eslint-plugin-unused-imports": "^1.1.5", + "fake-indexeddb": "^5.0.1", "fetch-mock": "^9.11.0", "file-loader": "^6.2.0", "filemanager-webpack-plugin": "^7.0.0", @@ -134,6 +135,7 @@ "url": "^0.11.0", "url-loader": "^4.1.1", "util": "^0.12.4", + "uuid": "^9.0.4", "validate-npm-package-name": "^3.0.0", "vfile": "^5.3.0", "vm-browserify": "^1.1.2",