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

Convert DirectoryForTemp to LazyInitializableState

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-09-14 12:47:01 -04:00
parent 9276cdff76
commit 7ff08dac36
9 changed files with 37 additions and 28 deletions

View File

@ -19,7 +19,7 @@ import directoryForUserDataInjectable from "../app-paths/directory-for-user-data
import { getDiForUnitTesting } from "../../main/getDiForUnitTesting"; import { getDiForUnitTesting } from "../../main/getDiForUnitTesting";
import getConfigurationFileModelInjectable from "../get-configuration-file-model/get-configuration-file-model.injectable"; import getConfigurationFileModelInjectable from "../get-configuration-file-model/get-configuration-file-model.injectable";
import assert from "assert"; import assert from "assert";
import directoryForTempInjectable from "../app-paths/directory-for-temp/directory-for-temp.injectable"; import directoryForTempInjectable from "../app-paths/directory-for-temp.injectable";
import kubectlBinaryNameInjectable from "../../main/kubectl/binary-name.injectable"; import kubectlBinaryNameInjectable from "../../main/kubectl/binary-name.injectable";
import kubectlDownloadingNormalizedArchInjectable from "../../main/kubectl/normalized-arch.injectable"; import kubectlDownloadingNormalizedArchInjectable from "../../main/kubectl/normalized-arch.injectable";
import normalizedPlatformInjectable from "../vars/normalized-platform.injectable"; import normalizedPlatformInjectable from "../vars/normalized-platform.injectable";
@ -89,7 +89,9 @@ describe("cluster-store", () => {
mainDi.override(directoryForUserDataInjectable, () => ({ mainDi.override(directoryForUserDataInjectable, () => ({
get: () => "some-directory-for-user-data", get: () => "some-directory-for-user-data",
})); }));
mainDi.override(directoryForTempInjectable, () => "some-temp-directory"); mainDi.override(directoryForTempInjectable, () => ({
get: () => "some-directory-for-temp",
}));
mainDi.override(kubectlBinaryNameInjectable, () => "kubectl"); mainDi.override(kubectlBinaryNameInjectable, () => "kubectl");
mainDi.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64"); mainDi.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
mainDi.override(normalizedPlatformInjectable, () => "darwin"); mainDi.override(normalizedPlatformInjectable, () => "darwin");

View File

@ -0,0 +1,13 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { createLazyInitializableState } from "../initializable-state/create-lazy";
import { appPathsInjectionToken } from "./token";
const directoryForTempInjectable = createLazyInitializableState({
id: "directory-for-temp",
init: (di) => di.inject(appPathsInjectionToken).get().temp,
});
export default directoryForTempInjectable;

View File

@ -1,13 +0,0 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { appPathsInjectionToken } from "../app-path-injection-token";
const directoryForTempInjectable = getInjectable({
id: "directory-for-temp",
instantiate: (di) => di.inject(appPathsInjectionToken).temp,
});
export default directoryForTempInjectable;

View File

@ -15,7 +15,7 @@ import createContextHandlerInjectable from "../context-handler/create-context-ha
import type { ClusterContextHandler } from "../context-handler/context-handler"; import type { ClusterContextHandler } from "../context-handler/context-handler";
import { parse } from "url"; import { parse } from "url";
import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data.injectable"; import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data.injectable";
import directoryForTempInjectable from "../../common/app-paths/directory-for-temp/directory-for-temp.injectable"; import directoryForTempInjectable from "../../common/app-paths/directory-for-temp.injectable";
import normalizedPlatformInjectable from "../../common/vars/normalized-platform.injectable"; import normalizedPlatformInjectable from "../../common/vars/normalized-platform.injectable";
import kubectlBinaryNameInjectable from "../kubectl/binary-name.injectable"; import kubectlBinaryNameInjectable from "../kubectl/binary-name.injectable";
import kubectlDownloadingNormalizedArchInjectable from "../kubectl/normalized-arch.injectable"; import kubectlDownloadingNormalizedArchInjectable from "../kubectl/normalized-arch.injectable";
@ -35,7 +35,9 @@ describe("create clusters", () => {
di.override(directoryForUserDataInjectable, () => ({ di.override(directoryForUserDataInjectable, () => ({
get: () => "some-directory-for-user-data", get: () => "some-directory-for-user-data",
})); }));
di.override(directoryForTempInjectable, () => "some-directory-for-temp"); di.override(directoryForTempInjectable, () => ({
get: () => "some-directory-for-temp",
}));
di.override(kubectlBinaryNameInjectable, () => "kubectl"); di.override(kubectlBinaryNameInjectable, () => "kubectl");
di.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64"); di.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
di.override(normalizedPlatformInjectable, () => "darwin"); di.override(normalizedPlatformInjectable, () => "darwin");

View File

@ -23,7 +23,7 @@ import path from "path";
import spawnInjectable from "../child-process/spawn.injectable"; import spawnInjectable from "../child-process/spawn.injectable";
import getConfigurationFileModelInjectable from "../../common/get-configuration-file-model/get-configuration-file-model.injectable"; import getConfigurationFileModelInjectable from "../../common/get-configuration-file-model/get-configuration-file-model.injectable";
import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data.injectable"; import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data.injectable";
import directoryForTempInjectable from "../../common/app-paths/directory-for-temp/directory-for-temp.injectable"; import directoryForTempInjectable from "../../common/app-paths/directory-for-temp.injectable";
import normalizedPlatformInjectable from "../../common/vars/normalized-platform.injectable"; import normalizedPlatformInjectable from "../../common/vars/normalized-platform.injectable";
import kubectlBinaryNameInjectable from "../kubectl/binary-name.injectable"; import kubectlBinaryNameInjectable from "../kubectl/binary-name.injectable";
import kubectlDownloadingNormalizedArchInjectable from "../kubectl/normalized-arch.injectable"; import kubectlDownloadingNormalizedArchInjectable from "../kubectl/normalized-arch.injectable";
@ -74,7 +74,9 @@ describe("kube auth proxy tests", () => {
di.override(directoryForUserDataInjectable, () => ({ di.override(directoryForUserDataInjectable, () => ({
get: () => "some-directory-for-user-data", get: () => "some-directory-for-user-data",
})); }));
di.override(directoryForTempInjectable, () => "some-directory-for-temp"); di.override(directoryForTempInjectable, () => ({
get: () => "some-directory-for-temp",
}));
spawnMock = jest.fn(); spawnMock = jest.fn();
di.override(spawnInjectable, () => spawnMock); di.override(spawnInjectable, () => spawnMock);

View File

@ -7,7 +7,7 @@ import { KubeconfigManager } from "../kubeconfig-manager/kubeconfig-manager";
import type { Cluster } from "../../common/cluster/cluster"; import type { Cluster } from "../../common/cluster/cluster";
import createKubeconfigManagerInjectable from "../kubeconfig-manager/create-kubeconfig-manager.injectable"; import createKubeconfigManagerInjectable from "../kubeconfig-manager/create-kubeconfig-manager.injectable";
import { createClusterInjectionToken } from "../../common/cluster/create-cluster-injection-token"; import { createClusterInjectionToken } from "../../common/cluster/create-cluster-injection-token";
import directoryForTempInjectable from "../../common/app-paths/directory-for-temp/directory-for-temp.injectable"; import directoryForTempInjectable from "../../common/app-paths/directory-for-temp.injectable";
import createContextHandlerInjectable from "../context-handler/create-context-handler.injectable"; import createContextHandlerInjectable from "../context-handler/create-context-handler.injectable";
import type { DiContainer } from "@ogre-tools/injectable"; import type { DiContainer } from "@ogre-tools/injectable";
import { parse } from "url"; import { parse } from "url";
@ -45,7 +45,9 @@ describe("kubeconfig manager tests", () => {
beforeEach(async () => { beforeEach(async () => {
di = getDiForUnitTesting({ doGeneralOverrides: true }); di = getDiForUnitTesting({ doGeneralOverrides: true });
di.override(directoryForTempInjectable, () => "/some-directory-for-temp"); di.override(directoryForTempInjectable, () => ({
get: () => "/some-directory-for-temp",
}));
di.override(directoryForUserDataInjectable, () => ({ di.override(directoryForUserDataInjectable, () => ({
get: () => "/some-directory-for-user-data", get: () => "/some-directory-for-user-data",
})); }));

View File

@ -9,7 +9,7 @@ import { loadFromOptions } from "../../../common/kube-helpers";
import type { Cluster } from "../../../common/cluster/cluster"; import type { Cluster } from "../../../common/cluster/cluster";
import { getDiForUnitTesting } from "../../getDiForUnitTesting"; import { getDiForUnitTesting } from "../../getDiForUnitTesting";
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data.injectable"; import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data.injectable";
import directoryForTempInjectable from "../../../common/app-paths/directory-for-temp/directory-for-temp.injectable"; import directoryForTempInjectable from "../../../common/app-paths/directory-for-temp.injectable";
import { iter, strictGet } from "../../../common/utils"; import { iter, strictGet } from "../../../common/utils";
import type { ComputeKubeconfigDiff } from "../kubeconfig-sync/compute-diff.injectable"; import type { ComputeKubeconfigDiff } from "../kubeconfig-sync/compute-diff.injectable";
import computeKubeconfigDiffInjectable from "../kubeconfig-sync/compute-diff.injectable"; import computeKubeconfigDiffInjectable from "../kubeconfig-sync/compute-diff.injectable";
@ -44,14 +44,14 @@ describe("kubeconfig-sync.source tests", () => {
beforeEach(async () => { beforeEach(async () => {
di = getDiForUnitTesting({ doGeneralOverrides: true }); di = getDiForUnitTesting({ doGeneralOverrides: true });
di.override(directoryForTempInjectable, () => "/some-directory-for-temp");
clusters = new Map(); clusters = new Map();
di.override(getClusterByIdInjectable, () => id => clusters.get(id)); di.override(getClusterByIdInjectable, () => id => clusters.get(id));
di.override(directoryForUserDataInjectable, () => ({ di.override(directoryForUserDataInjectable, () => ({
get: () => "some-directory-for-user-data", get: () => "some-directory-for-user-data",
})); }));
di.override(directoryForTempInjectable, () => "some-directory-for-temp"); di.override(directoryForTempInjectable, () => ({
get: () => "some-directory-for-temp",
}));
di.override(kubectlBinaryNameInjectable, () => "kubectl"); di.override(kubectlBinaryNameInjectable, () => "kubectl");
di.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64"); di.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
di.override(normalizedPlatformInjectable, () => "darwin"); di.override(normalizedPlatformInjectable, () => "darwin");

View File

@ -4,7 +4,7 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { Cluster } from "../../common/cluster/cluster"; import type { Cluster } from "../../common/cluster/cluster";
import directoryForTempInjectable from "../../common/app-paths/directory-for-temp/directory-for-temp.injectable"; import directoryForTempInjectable from "../../common/app-paths/directory-for-temp.injectable";
import type { KubeconfigManagerDependencies } from "./kubeconfig-manager"; import type { KubeconfigManagerDependencies } from "./kubeconfig-manager";
import { KubeconfigManager } from "./kubeconfig-manager"; import { KubeconfigManager } from "./kubeconfig-manager";
import loggerInjectable from "../../common/logger.injectable"; import loggerInjectable from "../../common/logger.injectable";

View File

@ -15,9 +15,10 @@ import type { GetDirnameOfPath } from "../../common/path/get-dirname.injectable"
import type { PathExists } from "../../common/fs/path-exists.injectable"; import type { PathExists } from "../../common/fs/path-exists.injectable";
import type { DeleteFile } from "../../common/fs/delete-file.injectable"; import type { DeleteFile } from "../../common/fs/delete-file.injectable";
import type { WriteFile } from "../../common/fs/write-file.injectable"; import type { WriteFile } from "../../common/fs/write-file.injectable";
import type { LazyInitializableState } from "../../common/initializable-state/create-lazy";
export interface KubeconfigManagerDependencies { export interface KubeconfigManagerDependencies {
readonly directoryForTemp: string; readonly directoryForTemp: LazyInitializableState<string>;
readonly logger: Logger; readonly logger: Logger;
readonly lensProxyPort: { get: () => number }; readonly lensProxyPort: { get: () => number };
joinPaths: JoinPaths; joinPaths: JoinPaths;
@ -97,7 +98,7 @@ export class KubeconfigManager {
const { cluster } = this; const { cluster } = this;
const { contextName, id } = cluster; const { contextName, id } = cluster;
const tempFile = this.dependencies.joinPaths( const tempFile = this.dependencies.joinPaths(
this.dependencies.directoryForTemp, this.dependencies.directoryForTemp.get(),
`kubeconfig-${id}`, `kubeconfig-${id}`,
); );
const kubeConfig = await cluster.getKubeconfig(); const kubeConfig = await cluster.getKubeconfig();