1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Upgrade and adapt to new version of libraries in ogre-tools (#7241)

* Update injectable version

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Adapt to new version of ogre-tools

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix "lint:fix" -command in core

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

---------

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
Janne Savolainen 2023-02-27 21:27:36 +02:00 committed by GitHub
parent b2160ae06c
commit 003dc44681
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 176 additions and 97 deletions

72
package-lock.json generated
View File

@ -4651,55 +4651,55 @@
} }
}, },
"node_modules/@ogre-tools/fp": { "node_modules/@ogre-tools/fp": {
"version": "12.0.1", "version": "15.1.1",
"resolved": "https://registry.npmjs.org/@ogre-tools/fp/-/fp-12.0.1.tgz", "resolved": "https://registry.npmjs.org/@ogre-tools/fp/-/fp-15.1.1.tgz",
"integrity": "sha512-BzMhkI4wPnuI+hXJDbtHUXQn/uBjJLx3W0oDaIFV+lLpkneUU0oW9D5uZFHNOouzCgf67/tnmUC6Ohevbr7/VA==", "integrity": "sha512-WuLl0lBFjMHcy6o+HZLw2eN9zSUx6210DqLbhjo110PtpMvXqzQOIfmIiKv+awKxs7F2lIj1QUUJ6PpxCXVWSg==",
"peerDependencies": { "peerDependencies": {
"lodash": "^4.17.21" "lodash": "^4.17.21"
} }
}, },
"node_modules/@ogre-tools/injectable": { "node_modules/@ogre-tools/injectable": {
"version": "12.0.1", "version": "15.1.1",
"resolved": "https://registry.npmjs.org/@ogre-tools/injectable/-/injectable-12.0.1.tgz", "resolved": "https://registry.npmjs.org/@ogre-tools/injectable/-/injectable-15.1.1.tgz",
"integrity": "sha512-uOx8STN2wSc9hknDSTGqViyR89Vwg7rGacwrVNchgyo48/QJsmZZz6cd1Aw3nT4vr7ekjTc2lh0Rz6zGIv47hg==", "integrity": "sha512-koB4z1FkaRbTEW77ULK1viVORlBCDnUtxAhxYiZrUzQcCvd7Fi4izs/YzDWLPc2HHay+EdJw11CuNC1JfzhaaA==",
"peerDependencies": { "peerDependencies": {
"@ogre-tools/fp": "^12.0.0", "@ogre-tools/fp": "*",
"lodash": "^4.17.21" "lodash": "^4.17.21"
} }
}, },
"node_modules/@ogre-tools/injectable-extension-for-auto-registration": { "node_modules/@ogre-tools/injectable-extension-for-auto-registration": {
"version": "12.0.1", "version": "15.1.1",
"resolved": "https://registry.npmjs.org/@ogre-tools/injectable-extension-for-auto-registration/-/injectable-extension-for-auto-registration-12.0.1.tgz", "resolved": "https://registry.npmjs.org/@ogre-tools/injectable-extension-for-auto-registration/-/injectable-extension-for-auto-registration-15.1.1.tgz",
"integrity": "sha512-itKcxEJ/J8SKGD/Wwj0UYOA+/nqwnrwanhikY6qhlibj8guujX77Iip7vMBzJFc2nIrRaQRcpNV2eXe+tjQUdg==", "integrity": "sha512-kByRoG1FTWnB412nkF4GnKzim1ldLbSd9H2PUR6UF0EmjPg3QstyZXSE341bWlWZMAi/1HPiagfZ9E1wOP609w==",
"peerDependencies": { "peerDependencies": {
"@ogre-tools/fp": "^12.0.0", "@ogre-tools/fp": "*",
"@ogre-tools/injectable": "^12.0.0", "@ogre-tools/injectable": "*",
"lodash": "^4.17.21" "lodash": "^4.17.21"
} }
}, },
"node_modules/@ogre-tools/injectable-extension-for-mobx": { "node_modules/@ogre-tools/injectable-extension-for-mobx": {
"version": "12.0.1", "version": "15.1.1",
"resolved": "https://registry.npmjs.org/@ogre-tools/injectable-extension-for-mobx/-/injectable-extension-for-mobx-12.0.1.tgz", "resolved": "https://registry.npmjs.org/@ogre-tools/injectable-extension-for-mobx/-/injectable-extension-for-mobx-15.1.1.tgz",
"integrity": "sha512-M1penOpZfO3/rJMb6WN4IL86p9Lx9tOMCipiNkAyitNLGWfeDPG279JlCs9E3Uw8R9nkFPiw8Je2SLnwnM9o+A==", "integrity": "sha512-ZdIZGG9Zr/okGktICQFY5PzENerjdNAlwvuP1Na8bmIHJAs7yEwi6KlSuoOkZ1oNvQcHAsi9V2WVBh8jGyHN8g==",
"peerDependencies": { "peerDependencies": {
"@ogre-tools/fp": "^12.0.0", "@ogre-tools/fp": "*",
"@ogre-tools/injectable": "^12.0.0", "@ogre-tools/injectable": "*",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mobx": "^6.3.0" "mobx": "^6.3.0"
} }
}, },
"node_modules/@ogre-tools/injectable-react": { "node_modules/@ogre-tools/injectable-react": {
"version": "12.0.1", "version": "15.1.1",
"resolved": "https://registry.npmjs.org/@ogre-tools/injectable-react/-/injectable-react-12.0.1.tgz", "resolved": "https://registry.npmjs.org/@ogre-tools/injectable-react/-/injectable-react-15.1.1.tgz",
"integrity": "sha512-LAOh/EHKqk/pQcBRZUAz0VcJwgBeIPxHwlV/Apw0aEBBoMuYLsLZh47rES8sMYMV6N5x7oVfkjMscujY0DCgaQ==", "integrity": "sha512-nJ1mH3FsL+9WbiWoIbs955rKONf/0jkw4UmEM2dBdi5dQ7G6MCZu/lh4sTcPm5u3g6ZoV7o6rUZjkwkM1qUcZw==",
"peerDependencies": { "peerDependencies": {
"@ogre-tools/fp": "^12.0.0", "@ogre-tools/fp": "*",
"@ogre-tools/injectable": "^12.0.0", "@ogre-tools/injectable": "*",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mobx": "^6.3.0", "mobx": "^6.3.0",
"mobx-react": "^7.2.0", "mobx-react": "^7.2.0",
"react": "^17.0.0", "react": "^17 || ^18",
"react-dom": "^17.0.0" "react-dom": "^17 || ^18"
} }
}, },
"node_modules/@parcel/watcher": { "node_modules/@parcel/watcher": {
@ -32266,11 +32266,11 @@
"@k8slens/node-fetch": "^6.4.0-beta.13", "@k8slens/node-fetch": "^6.4.0-beta.13",
"@kubernetes/client-node": "^0.18.1", "@kubernetes/client-node": "^0.18.1",
"@material-ui/styles": "^4.11.5", "@material-ui/styles": "^4.11.5",
"@ogre-tools/fp": "^12.0.1", "@ogre-tools/fp": "^15.1.1",
"@ogre-tools/injectable": "^12.0.1", "@ogre-tools/injectable": "^15.1.1",
"@ogre-tools/injectable-extension-for-auto-registration": "^12.0.1", "@ogre-tools/injectable-extension-for-auto-registration": "^15.1.1",
"@ogre-tools/injectable-extension-for-mobx": "^12.0.1", "@ogre-tools/injectable-extension-for-mobx": "^15.1.1",
"@ogre-tools/injectable-react": "^12.0.1", "@ogre-tools/injectable-react": "^15.1.1",
"@sentry/electron": "^3.0.8", "@sentry/electron": "^3.0.8",
"@sentry/integrations": "^6.19.3", "@sentry/integrations": "^6.19.3",
"@side/jest-runtime": "^1.1.0", "@side/jest-runtime": "^1.1.0",
@ -34297,11 +34297,11 @@
"@k8slens/core": "^6.4.0-beta.13", "@k8slens/core": "^6.4.0-beta.13",
"@k8slens/ensure-binaries": "^6.4.0-beta.13", "@k8slens/ensure-binaries": "^6.4.0-beta.13",
"@k8slens/generate-tray-icons": "^6.4.0-beta.13", "@k8slens/generate-tray-icons": "^6.4.0-beta.13",
"@ogre-tools/fp": "^12.0.1", "@ogre-tools/fp": "^15.1.1",
"@ogre-tools/injectable": "^12.0.1", "@ogre-tools/injectable": "^15.1.1",
"@ogre-tools/injectable-extension-for-auto-registration": "^12.0.1", "@ogre-tools/injectable-extension-for-auto-registration": "^15.1.1",
"@ogre-tools/injectable-extension-for-mobx": "^12.0.1", "@ogre-tools/injectable-extension-for-mobx": "^15.1.1",
"@ogre-tools/injectable-react": "^12.0.1", "@ogre-tools/injectable-react": "^15.1.1",
"mobx": "^6.8.0", "mobx": "^6.8.0",
"rimraf": "^4.1.2" "rimraf": "^4.1.2"
}, },
@ -34807,8 +34807,8 @@
"version": "6.4.0-beta.13", "version": "6.4.0-beta.13",
"license": "MIT", "license": "MIT",
"peerDependencies": { "peerDependencies": {
"@ogre-tools/fp": "^12.0.1", "@ogre-tools/fp": "^15.1.1",
"@ogre-tools/injectable": "^12.0.1", "@ogre-tools/injectable": "^15.1.1",
"lodash": "^4.17.15" "lodash": "^4.17.15"
} }
} }

View File

@ -57,7 +57,7 @@
"test:unit": "jest --testPathIgnorePatterns integration", "test:unit": "jest --testPathIgnorePatterns integration",
"test:watch": "func() { jest ${1} --watch --testPathIgnorePatterns integration; }; func", "test:watch": "func() { jest ${1} --watch --testPathIgnorePatterns integration; }; func",
"lint": "PROD=true eslint --ext js,ts,tsx --max-warnings=0 .", "lint": "PROD=true eslint --ext js,ts,tsx --max-warnings=0 .",
"lint:fix": "npm run lint --fix" "lint:fix": "npm run lint -- --fix"
}, },
"config": { "config": {
"k8sProxyVersion": "0.3.0", "k8sProxyVersion": "0.3.0",
@ -130,11 +130,11 @@
"@k8slens/node-fetch": "^6.4.0-beta.13", "@k8slens/node-fetch": "^6.4.0-beta.13",
"@kubernetes/client-node": "^0.18.1", "@kubernetes/client-node": "^0.18.1",
"@material-ui/styles": "^4.11.5", "@material-ui/styles": "^4.11.5",
"@ogre-tools/fp": "^12.0.1", "@ogre-tools/fp": "^15.1.1",
"@ogre-tools/injectable": "^12.0.1", "@ogre-tools/injectable": "^15.1.1",
"@ogre-tools/injectable-extension-for-auto-registration": "^12.0.1", "@ogre-tools/injectable-extension-for-auto-registration": "^15.1.1",
"@ogre-tools/injectable-extension-for-mobx": "^12.0.1", "@ogre-tools/injectable-extension-for-mobx": "^15.1.1",
"@ogre-tools/injectable-react": "^12.0.1", "@ogre-tools/injectable-react": "^15.1.1",
"@sentry/electron": "^3.0.8", "@sentry/electron": "^3.0.8",
"@sentry/integrations": "^6.19.3", "@sentry/integrations": "^6.19.3",
"@side/jest-runtime": "^1.1.0", "@side/jest-runtime": "^1.1.0",

View File

@ -74,8 +74,7 @@ describe("cluster-store", () => {
di.override(kubectlBinaryNameInjectable, () => "kubectl"); di.override(kubectlBinaryNameInjectable, () => "kubectl");
di.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64"); di.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
di.override(normalizedPlatformInjectable, () => "darwin"); di.override(normalizedPlatformInjectable, () => "darwin");
createCluster = di.inject(createClusterInjectionToken);
getCustomKubeConfigFilePath = di.inject(getCustomKubeConfigFilePathInjectable);
writeJsonSync = di.inject(writeJsonSyncInjectable); writeJsonSync = di.inject(writeJsonSyncInjectable);
writeFileSync = di.inject(writeFileSyncInjectable); writeFileSync = di.inject(writeFileSyncInjectable);
writeBufferSync = di.inject(writeBufferSyncInjectable); writeBufferSync = di.inject(writeBufferSyncInjectable);
@ -85,6 +84,9 @@ describe("cluster-store", () => {
describe("empty config", () => { describe("empty config", () => {
beforeEach(async () => { beforeEach(async () => {
createCluster = di.inject(createClusterInjectionToken);
getCustomKubeConfigFilePath = di.inject(getCustomKubeConfigFilePathInjectable);
writeJsonSync("/some-directory-for-user-data/lens-cluster-store.json", {}); writeJsonSync("/some-directory-for-user-data/lens-cluster-store.json", {});
clusterStore = di.inject(clusterStoreInjectable); clusterStore = di.inject(clusterStoreInjectable);
clusterStore.load(); clusterStore.load();
@ -198,6 +200,10 @@ describe("cluster-store", () => {
}, },
], ],
}); });
createCluster = di.inject(createClusterInjectionToken);
getCustomKubeConfigFilePath = di.inject(getCustomKubeConfigFilePathInjectable);
clusterStore = di.inject(clusterStoreInjectable); clusterStore = di.inject(clusterStoreInjectable);
clusterStore.load(); clusterStore.load();
}); });
@ -249,6 +255,10 @@ describe("cluster-store", () => {
}, },
], ],
}); });
createCluster = di.inject(createClusterInjectionToken);
getCustomKubeConfigFilePath = di.inject(getCustomKubeConfigFilePathInjectable);
clusterStore = di.inject(clusterStoreInjectable); clusterStore = di.inject(clusterStoreInjectable);
clusterStore.load(); clusterStore.load();
}); });
@ -262,6 +272,11 @@ describe("cluster-store", () => {
describe("pre 3.6.0-beta.1 config with an existing cluster", () => { describe("pre 3.6.0-beta.1 config with an existing cluster", () => {
beforeEach(() => { beforeEach(() => {
di.override(storeMigrationVersionInjectable, () => "3.6.0");
createCluster = di.inject(createClusterInjectionToken);
getCustomKubeConfigFilePath = di.inject(getCustomKubeConfigFilePathInjectable);
writeJsonSync("/some-directory-for-user-data/lens-cluster-store.json", { writeJsonSync("/some-directory-for-user-data/lens-cluster-store.json", {
__internal__: { __internal__: {
migrations: { migrations: {
@ -281,7 +296,6 @@ describe("cluster-store", () => {
}); });
writeBufferSync("/some-directory-for-user-data/icon_path", testDataIcon); writeBufferSync("/some-directory-for-user-data/icon_path", testDataIcon);
di.override(storeMigrationVersionInjectable, () => "3.6.0");
clusterStore = di.inject(clusterStoreInjectable); clusterStore = di.inject(clusterStoreInjectable);
clusterStore.load(); clusterStore.load();

View File

@ -30,9 +30,9 @@ describe("user store tests", () => {
get: () => "latest" as const, get: () => "latest" as const,
init: async () => {}, init: async () => {},
})); }));
await di.inject(defaultUpdateChannelInjectable).init(); await di.inject(defaultUpdateChannelInjectable).init();
userStore = di.inject(userStoreInjectable);
}); });
describe("for an empty config", () => { describe("for an empty config", () => {
@ -42,6 +42,8 @@ describe("user store tests", () => {
writeJsonSync("/some-directory-for-user-data/lens-user-store.json", {}); writeJsonSync("/some-directory-for-user-data/lens-user-store.json", {});
writeJsonSync("/some-directory-for-user-data/kube_config", {}); writeJsonSync("/some-directory-for-user-data/kube_config", {});
userStore = di.inject(userStoreInjectable);
userStore.load(); userStore.load();
}); });
@ -90,6 +92,8 @@ describe("user store tests", () => {
di.override(storeMigrationVersionInjectable, () => "10.0.0"); di.override(storeMigrationVersionInjectable, () => "10.0.0");
userStore = di.inject(userStoreInjectable);
userStore.load(); userStore.load();
}); });

View File

@ -4,7 +4,6 @@
*/ */
import type { DiContainer } from "@ogre-tools/injectable"; import type { DiContainer } from "@ogre-tools/injectable";
import createClusterInjectable from "../../../main/create-cluster/create-cluster.injectable";
import clusterFrameContextForNamespacedResourcesInjectable from "../../../renderer/cluster-frame-context/for-namespaced-resources.injectable"; import clusterFrameContextForNamespacedResourcesInjectable from "../../../renderer/cluster-frame-context/for-namespaced-resources.injectable";
import hostedClusterInjectable from "../../../renderer/cluster-frame-context/hosted-cluster.injectable"; import hostedClusterInjectable from "../../../renderer/cluster-frame-context/hosted-cluster.injectable";
import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting"; import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting";
@ -18,6 +17,7 @@ import { KubeApi } from "../kube-api";
import { KubeObject } from "../kube-object"; import { KubeObject } from "../kube-object";
import { KubeObjectStore } from "../kube-object.store"; import { KubeObjectStore } from "../kube-object.store";
import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; import maybeKubeApiInjectable from "../maybe-kube-api.injectable";
import { createClusterInjectionToken } from "../../cluster/create-cluster-injection-token";
// eslint-disable-next-line no-restricted-imports // eslint-disable-next-line no-restricted-imports
import { KubeApi as ExternalKubeApi } from "../../../extensions/common-api/k8s-api"; import { KubeApi as ExternalKubeApi } from "../../../extensions/common-api/k8s-api";
@ -43,7 +43,7 @@ describe("ApiManager", () => {
di.override(directoryForKubeConfigsInjectable, () => "/some-kube-configs"); di.override(directoryForKubeConfigsInjectable, () => "/some-kube-configs");
di.override(storesAndApisCanBeCreatedInjectable, () => true); di.override(storesAndApisCanBeCreatedInjectable, () => true);
const createCluster = di.inject(createClusterInjectable); const createCluster = di.inject(createClusterInjectionToken);
di.override(hostedClusterInjectable, () => createCluster({ di.override(hostedClusterInjectable, () => createCluster({
contextName: "some-context-name", contextName: "some-context-name",

View File

@ -15,7 +15,6 @@ import setupAutoRegistrationInjectable from "../../../renderer/before-frame-star
import { createMockResponseFromString } from "../../../test-utils/mock-responses"; import { createMockResponseFromString } from "../../../test-utils/mock-responses";
import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable"; import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable";
import directoryForUserDataInjectable from "../../app-paths/directory-for-user-data/directory-for-user-data.injectable"; import directoryForUserDataInjectable from "../../app-paths/directory-for-user-data/directory-for-user-data.injectable";
import createClusterInjectable from "../../../main/create-cluster/create-cluster.injectable";
import hostedClusterInjectable from "../../../renderer/cluster-frame-context/hosted-cluster.injectable"; import hostedClusterInjectable from "../../../renderer/cluster-frame-context/hosted-cluster.injectable";
import directoryForKubeConfigsInjectable from "../../app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable"; import directoryForKubeConfigsInjectable from "../../app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable";
import apiManagerInjectable from "../api-manager/manager.injectable"; import apiManagerInjectable from "../api-manager/manager.injectable";
@ -23,6 +22,7 @@ import type { DiContainer } from "@ogre-tools/injectable";
import ingressApiInjectable from "../endpoints/ingress.api.injectable"; import ingressApiInjectable from "../endpoints/ingress.api.injectable";
import loggerInjectable from "../../logger.injectable"; import loggerInjectable from "../../logger.injectable";
import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; import maybeKubeApiInjectable from "../maybe-kube-api.injectable";
import { createClusterInjectionToken } from "../../cluster/create-cluster-injection-token";
describe("KubeApi", () => { describe("KubeApi", () => {
let fetchMock: AsyncFnMock<Fetch>; let fetchMock: AsyncFnMock<Fetch>;
@ -39,7 +39,7 @@ describe("KubeApi", () => {
di.override(directoryForKubeConfigsInjectable, () => "/some-kube-configs"); di.override(directoryForKubeConfigsInjectable, () => "/some-kube-configs");
di.override(storesAndApisCanBeCreatedInjectable, () => true); di.override(storesAndApisCanBeCreatedInjectable, () => true);
const createCluster = di.inject(createClusterInjectable); const createCluster = di.inject(createClusterInjectionToken);
di.override(hostedClusterInjectable, () => createCluster({ di.override(hostedClusterInjectable, () => createCluster({
contextName: "some-context-name", contextName: "some-context-name",

View File

@ -24,7 +24,6 @@ import setupAutoRegistrationInjectable from "../../../renderer/before-frame-star
import { createMockResponseFromStream, createMockResponseFromString } from "../../../test-utils/mock-responses"; import { createMockResponseFromStream, createMockResponseFromString } from "../../../test-utils/mock-responses";
import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable"; import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable";
import directoryForUserDataInjectable from "../../app-paths/directory-for-user-data/directory-for-user-data.injectable"; import directoryForUserDataInjectable from "../../app-paths/directory-for-user-data/directory-for-user-data.injectable";
import createClusterInjectable from "../../../main/create-cluster/create-cluster.injectable";
import hostedClusterInjectable from "../../../renderer/cluster-frame-context/hosted-cluster.injectable"; import hostedClusterInjectable from "../../../renderer/cluster-frame-context/hosted-cluster.injectable";
import directoryForKubeConfigsInjectable from "../../app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable"; import directoryForKubeConfigsInjectable from "../../app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable";
import apiKubeInjectable from "../../../renderer/k8s/api-kube.injectable"; import apiKubeInjectable from "../../../renderer/k8s/api-kube.injectable";
@ -36,6 +35,7 @@ import namespaceApiInjectable from "../endpoints/namespace.api.injectable";
// NOTE: this is fine because we are testing something that only exported // NOTE: this is fine because we are testing something that only exported
// eslint-disable-next-line no-restricted-imports // eslint-disable-next-line no-restricted-imports
import { PodsApi } from "../../../extensions/common-api/k8s-api"; import { PodsApi } from "../../../extensions/common-api/k8s-api";
import { createClusterInjectionToken } from "../../cluster/create-cluster-injection-token";
describe("createKubeApiForRemoteCluster", () => { describe("createKubeApiForRemoteCluster", () => {
let createKubeApiForRemoteCluster: CreateKubeApiForRemoteCluster; let createKubeApiForRemoteCluster: CreateKubeApiForRemoteCluster;
@ -48,7 +48,7 @@ describe("createKubeApiForRemoteCluster", () => {
di.override(directoryForKubeConfigsInjectable, () => "/some-kube-configs"); di.override(directoryForKubeConfigsInjectable, () => "/some-kube-configs");
di.override(storesAndApisCanBeCreatedInjectable, () => true); di.override(storesAndApisCanBeCreatedInjectable, () => true);
const createCluster = di.inject(createClusterInjectable); const createCluster = di.inject(createClusterInjectionToken);
di.override(hostedClusterInjectable, () => createCluster({ di.override(hostedClusterInjectable, () => createCluster({
contextName: "some-context-name", contextName: "some-context-name",
@ -154,7 +154,7 @@ describe("KubeApi", () => {
fetchMock = asyncFn(); fetchMock = asyncFn();
di.override(fetchInjectable, () => fetchMock); di.override(fetchInjectable, () => fetchMock);
const createCluster = di.inject(createClusterInjectable); const createCluster = di.inject(createClusterInjectionToken);
const createKubeJsonApi = di.inject(createKubeJsonApiInjectable); const createKubeJsonApi = di.inject(createKubeJsonApiInjectable);
di.override(hostedClusterInjectable, () => createCluster({ di.override(hostedClusterInjectable, () => createCluster({

View File

@ -19,7 +19,10 @@ import asyncFn from "@async-fn/jest";
import { getPromiseStatus } from "../../test-utils/get-promise-status"; import { getPromiseStatus } from "../../test-utils/get-promise-status";
import { runInAction } from "mobx"; import { runInAction } from "mobx";
import type { RequestChannelHandler } from "../../../main/utils/channel/channel-listeners/listener-tokens"; import type { RequestChannelHandler } from "../../../main/utils/channel/channel-listeners/listener-tokens";
import { getRequestChannelListenerInjectable } from "../../../main/utils/channel/channel-listeners/listener-tokens"; import {
getRequestChannelListenerInjectable,
requestChannelListenerInjectionToken,
} from "../../../main/utils/channel/channel-listeners/listener-tokens";
type TestMessageChannel = MessageChannel<string>; type TestMessageChannel = MessageChannel<string>;
type TestRequestChannel = RequestChannel<string, string>; type TestRequestChannel = RequestChannel<string, string>;
@ -199,21 +202,32 @@ describe("channel", () => {
it("when registering multiple handlers for the same channel, throws", async () => { it("when registering multiple handlers for the same channel, throws", async () => {
const applicationBuilder = getApplicationBuilder(); const applicationBuilder = getApplicationBuilder();
const testChannelListenerInMainInjectable = getRequestChannelListenerInjectable({ const someChannelListenerInjectable = getInjectable({
id: "some-channel-listener",
instantiate: () => ({
channel: testRequestChannel, channel: testRequestChannel,
handler: () => () => "some-value", handler: () => () => "irrelevant",
}); }),
const testChannelListenerInMain2Injectable = getRequestChannelListenerInjectable({
channel: testRequestChannel, injectionToken: requestChannelListenerInjectionToken,
handler: () => () => "some-other-value",
}); });
testChannelListenerInMain2Injectable.id += "2"; const someOtherChannelListenerInjectable = getInjectable({
id: "some-other-channel-listener",
instantiate: () => ({
channel: testRequestChannel,
handler: () => () => "irrelevant",
}),
injectionToken: requestChannelListenerInjectionToken,
});
applicationBuilder.beforeApplicationStart((mainDi) => { applicationBuilder.beforeApplicationStart((mainDi) => {
runInAction(() => { runInAction(() => {
mainDi.register(testChannelListenerInMainInjectable); mainDi.register(someChannelListenerInjectable);
mainDi.register(testChannelListenerInMain2Injectable); mainDi.register(someOtherChannelListenerInjectable);
}); });
}); });

View File

@ -19,7 +19,7 @@ const withOrphanPromiseInjectable = getInjectable({
toBeDecorated, toBeDecorated,
withErrorLoggingFor(() => "Orphan promise rejection encountered"), withErrorLoggingFor(() => "Orphan promise rejection encountered"),
withErrorSuppression, withErrorSuppression,
); ) as ((...args: any[]) => any);
decorated(...args); decorated(...args);
}; };

View File

@ -25,6 +25,17 @@ describe("opening catalog entity details panel", () => {
beforeEach(async () => { beforeEach(async () => {
builder = getApplicationBuilder(); builder = getApplicationBuilder();
builder.beforeWindowStart((windowDi) => {
// TODO: remove once ClusterStore can be used without overriding it
windowDi.override(getClusterByIdInjectable, () => (clusterId) => {
if (clusterId === cluster.id) {
return cluster;
}
return undefined;
});
});
builder.afterWindowStart((windowDi) => { builder.afterWindowStart((windowDi) => {
const createCluster = windowDi.inject(createClusterInjectable); const createCluster = windowDi.inject(createClusterInjectable);
@ -78,15 +89,6 @@ describe("opening catalog entity details panel", () => {
clusterServerUrl: "https://localhost:9999", clusterServerUrl: "https://localhost:9999",
}); });
// TODO: remove once ClusterStore can be used without overriding it
windowDi.override(getClusterByIdInjectable, () => (clusterId) => {
if (clusterId === cluster.id) {
return cluster;
}
return undefined;
});
// TODO: replace with proper entity source once syncing entities between main and windows is injectable // TODO: replace with proper entity source once syncing entities between main and windows is injectable
const catalogEntityRegistry = windowDi.inject(catalogEntityRegistryInjectable); const catalogEntityRegistry = windowDi.inject(catalogEntityRegistryInjectable);

View File

@ -830,7 +830,40 @@ exports[`Showing correct entity settings when navigating to non-local cluster en
> >
Proxy Proxy
</h2> </h2>
<section /> <section>
<section>
<div
class="SubTitle"
id="http-proxy"
>
HTTP Proxy
</div>
<div
class="Input theme round black"
>
<label
class="input-area flex gaps align-center"
id=""
>
<input
class="input box grow"
placeholder="http://<address>:<port>"
spellcheck="false"
value=""
/>
</label>
<div
class="input-info flex gaps"
/>
</div>
<small
class="hint"
>
HTTP Proxy server. Used for communicating with Kubernetes API.
</small>
</section>
</section>
</section> </section>
</div> </div>
<div <div

View File

@ -25,6 +25,17 @@ describe("Showing correct entity settings", () => {
beforeEach(async () => { beforeEach(async () => {
builder = getApplicationBuilder(); builder = getApplicationBuilder();
builder.beforeWindowStart((windowDi) => {
// TODO: remove once ClusterStore can be used without overriding it
windowDi.override(getClusterByIdInjectable, () => (clusterId) => {
if (clusterId === cluster.id) {
return cluster;
}
return undefined;
});
});
builder.afterWindowStart((windowDi) => { builder.afterWindowStart((windowDi) => {
const createCluster = windowDi.inject(createClusterInjectable); const createCluster = windowDi.inject(createClusterInjectable);
@ -78,14 +89,6 @@ describe("Showing correct entity settings", () => {
clusterServerUrl: "https://localhost:9999", clusterServerUrl: "https://localhost:9999",
}); });
// TODO: remove once ClusterStore can be used without overriding it
windowDi.override(getClusterByIdInjectable, () => (clusterId) => {
if (clusterId === cluster.id) {
return cluster;
}
return undefined;
});
// TODO: replace with proper entity source once syncing entities between main and windows is injectable // TODO: replace with proper entity source once syncing entities between main and windows is injectable
const catalogEntityRegistry = windowDi.inject(catalogEntityRegistryInjectable); const catalogEntityRegistry = windowDi.inject(catalogEntityRegistryInjectable);

View File

@ -16,7 +16,8 @@ export function registerInjectables(di: DiContainer) {
autoRegister({ autoRegister({
di, di,
requireContexts: [ targetModule: module,
getRequireContexts: () => [
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES), require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
require.context("../extensions", true, CONTEXT_MATCHER_FOR_NON_FEATURES), require.context("../extensions", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES), require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES),

View File

@ -19,8 +19,8 @@ import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-create
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable";
import directoryForKubeConfigsInjectable from "../../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable"; import directoryForKubeConfigsInjectable from "../../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable";
import hostedClusterInjectable from "../../cluster-frame-context/hosted-cluster.injectable"; import hostedClusterInjectable from "../../cluster-frame-context/hosted-cluster.injectable";
import createClusterInjectable from "../../../main/create-cluster/create-cluster.injectable";
import type { PodStore } from "../+workloads-pods/store"; import type { PodStore } from "../+workloads-pods/store";
import { createClusterInjectionToken } from "../../../common/cluster/create-cluster-injection-token";
describe("kube-object-list-layout", () => { describe("kube-object-list-layout", () => {
let di: DiContainer; let di: DiContainer;
@ -34,7 +34,7 @@ describe("kube-object-list-layout", () => {
di.override(directoryForKubeConfigsInjectable, () => "/some-kube-configs"); di.override(directoryForKubeConfigsInjectable, () => "/some-kube-configs");
di.override(storesAndApisCanBeCreatedInjectable, () => true); di.override(storesAndApisCanBeCreatedInjectable, () => true);
const createCluster = di.inject(createClusterInjectable); const createCluster = di.inject(createClusterInjectionToken);
di.override(hostedClusterInjectable, () => createCluster({ di.override(hostedClusterInjectable, () => createCluster({
contextName: "some-context-name", contextName: "some-context-name",

View File

@ -20,6 +20,7 @@ import legacyOnChannelListenInjectable from "./ipc/legacy-channel-listen.injecta
import type { GlobalOverride } from "../common/test-utils/get-global-override"; import type { GlobalOverride } from "../common/test-utils/get-global-override";
import nodeEnvInjectionToken from "../common/vars/node-env-injection-token"; import nodeEnvInjectionToken from "../common/vars/node-env-injection-token";
import { applicationInformationFakeInjectable } from "../common/vars/application-information-fake-injectable"; import { applicationInformationFakeInjectable } from "../common/vars/application-information-fake-injectable";
import { registerInjectableReact } from "@ogre-tools/injectable-react";
export const getDiForUnitTesting = ( export const getDiForUnitTesting = (
opts: { doGeneralOverrides?: boolean } = {}, opts: { doGeneralOverrides?: boolean } = {},
@ -46,6 +47,7 @@ export const getDiForUnitTesting = (
) as Injectable<any, any, any>[]; ) as Injectable<any, any, any>[];
registerMobX(di); registerMobX(di);
registerInjectableReact(di);
runInAction(() => { runInAction(() => {
di.register(applicationInformationFakeInjectable); di.register(applicationInformationFakeInjectable);

View File

@ -6,18 +6,22 @@
import type { DiContainer } from "@ogre-tools/injectable"; import type { DiContainer } from "@ogre-tools/injectable";
import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration"; import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration";
import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
import { registerInjectableReact } from "@ogre-tools/injectable-react";
import { runInAction } from "mobx"; import { runInAction } from "mobx";
import { Environments, setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; import { Environments, setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
export function registerInjectables(di: DiContainer) { export function registerInjectables(di: DiContainer) {
setLegacyGlobalDiForExtensionApi(di, Environments.renderer); setLegacyGlobalDiForExtensionApi(di, Environments.renderer);
runInAction(() => {
registerMobX(di); registerMobX(di);
registerInjectableReact(di);
runInAction(() => {
autoRegister({ autoRegister({
di, di,
requireContexts: [ targetModule: module,
getRequireContexts: () => [
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES), require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES), require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
require.context("../extensions", true, CONTEXT_MATCHER_FOR_NON_FEATURES), require.context("../extensions", true, CONTEXT_MATCHER_FOR_NON_FEATURES),

View File

@ -199,11 +199,11 @@
"@k8slens/core": "^6.4.0-beta.13", "@k8slens/core": "^6.4.0-beta.13",
"@k8slens/ensure-binaries": "^6.4.0-beta.13", "@k8slens/ensure-binaries": "^6.4.0-beta.13",
"@k8slens/generate-tray-icons": "^6.4.0-beta.13", "@k8slens/generate-tray-icons": "^6.4.0-beta.13",
"@ogre-tools/fp": "^12.0.1", "@ogre-tools/fp": "^15.1.1",
"@ogre-tools/injectable": "^12.0.1", "@ogre-tools/injectable": "^15.1.1",
"@ogre-tools/injectable-extension-for-auto-registration": "^12.0.1", "@ogre-tools/injectable-extension-for-auto-registration": "^15.1.1",
"@ogre-tools/injectable-extension-for-mobx": "^12.0.1", "@ogre-tools/injectable-extension-for-mobx": "^15.1.1",
"@ogre-tools/injectable-react": "^12.0.1", "@ogre-tools/injectable-react": "^15.1.1",
"mobx": "^6.8.0", "mobx": "^6.8.0",
"rimraf": "^4.1.2" "rimraf": "^4.1.2"
}, },

View File

@ -13,7 +13,8 @@ runInAction(() => {
try { try {
autoRegister({ autoRegister({
di, di,
requireContexts: [ targetModule: module,
getRequireContexts: () => [
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES), require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES), require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
], ],

View File

@ -13,7 +13,8 @@ const app = createApp({
runInAction(() => { runInAction(() => {
autoRegister({ autoRegister({
di, di,
requireContexts: [ targetModule: module,
getRequireContexts: () => [
require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES), require.context("./", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES), require.context("../common", true, CONTEXT_MATCHER_FOR_NON_FEATURES),
], ],

View File

@ -29,8 +29,8 @@
"test": "jest --coverage --runInBand" "test": "jest --coverage --runInBand"
}, },
"peerDependencies": { "peerDependencies": {
"@ogre-tools/fp": "^12.0.1", "@ogre-tools/fp": "^15.1.1",
"@ogre-tools/injectable": "^12.0.1", "@ogre-tools/injectable": "^15.1.1",
"lodash": "^4.17.15" "lodash": "^4.17.15"
} }
} }