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:
parent
9276cdff76
commit
7ff08dac36
@ -19,7 +19,7 @@ import directoryForUserDataInjectable from "../app-paths/directory-for-user-data
|
||||
import { getDiForUnitTesting } from "../../main/getDiForUnitTesting";
|
||||
import getConfigurationFileModelInjectable from "../get-configuration-file-model/get-configuration-file-model.injectable";
|
||||
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 kubectlDownloadingNormalizedArchInjectable from "../../main/kubectl/normalized-arch.injectable";
|
||||
import normalizedPlatformInjectable from "../vars/normalized-platform.injectable";
|
||||
@ -89,7 +89,9 @@ describe("cluster-store", () => {
|
||||
mainDi.override(directoryForUserDataInjectable, () => ({
|
||||
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(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
|
||||
mainDi.override(normalizedPlatformInjectable, () => "darwin");
|
||||
|
||||
13
src/common/app-paths/directory-for-temp.injectable.ts
Normal file
13
src/common/app-paths/directory-for-temp.injectable.ts
Normal 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;
|
||||
@ -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;
|
||||
@ -15,7 +15,7 @@ import createContextHandlerInjectable from "../context-handler/create-context-ha
|
||||
import type { ClusterContextHandler } from "../context-handler/context-handler";
|
||||
import { parse } from "url";
|
||||
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 kubectlBinaryNameInjectable from "../kubectl/binary-name.injectable";
|
||||
import kubectlDownloadingNormalizedArchInjectable from "../kubectl/normalized-arch.injectable";
|
||||
@ -35,7 +35,9 @@ describe("create clusters", () => {
|
||||
di.override(directoryForUserDataInjectable, () => ({
|
||||
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(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
|
||||
di.override(normalizedPlatformInjectable, () => "darwin");
|
||||
|
||||
@ -23,7 +23,7 @@ import path from "path";
|
||||
import spawnInjectable from "../child-process/spawn.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 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 kubectlBinaryNameInjectable from "../kubectl/binary-name.injectable";
|
||||
import kubectlDownloadingNormalizedArchInjectable from "../kubectl/normalized-arch.injectable";
|
||||
@ -74,7 +74,9 @@ describe("kube auth proxy tests", () => {
|
||||
di.override(directoryForUserDataInjectable, () => ({
|
||||
get: () => "some-directory-for-user-data",
|
||||
}));
|
||||
di.override(directoryForTempInjectable, () => "some-directory-for-temp");
|
||||
di.override(directoryForTempInjectable, () => ({
|
||||
get: () => "some-directory-for-temp",
|
||||
}));
|
||||
|
||||
spawnMock = jest.fn();
|
||||
di.override(spawnInjectable, () => spawnMock);
|
||||
|
||||
@ -7,7 +7,7 @@ import { KubeconfigManager } from "../kubeconfig-manager/kubeconfig-manager";
|
||||
import type { Cluster } from "../../common/cluster/cluster";
|
||||
import createKubeconfigManagerInjectable from "../kubeconfig-manager/create-kubeconfig-manager.injectable";
|
||||
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 type { DiContainer } from "@ogre-tools/injectable";
|
||||
import { parse } from "url";
|
||||
@ -45,7 +45,9 @@ describe("kubeconfig manager tests", () => {
|
||||
beforeEach(async () => {
|
||||
di = getDiForUnitTesting({ doGeneralOverrides: true });
|
||||
|
||||
di.override(directoryForTempInjectable, () => "/some-directory-for-temp");
|
||||
di.override(directoryForTempInjectable, () => ({
|
||||
get: () => "/some-directory-for-temp",
|
||||
}));
|
||||
di.override(directoryForUserDataInjectable, () => ({
|
||||
get: () => "/some-directory-for-user-data",
|
||||
}));
|
||||
|
||||
@ -9,7 +9,7 @@ import { loadFromOptions } from "../../../common/kube-helpers";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
import { getDiForUnitTesting } from "../../getDiForUnitTesting";
|
||||
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 type { ComputeKubeconfigDiff } 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 () => {
|
||||
di = getDiForUnitTesting({ doGeneralOverrides: true });
|
||||
|
||||
di.override(directoryForTempInjectable, () => "/some-directory-for-temp");
|
||||
|
||||
clusters = new Map();
|
||||
di.override(getClusterByIdInjectable, () => id => clusters.get(id));
|
||||
di.override(directoryForUserDataInjectable, () => ({
|
||||
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(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
|
||||
di.override(normalizedPlatformInjectable, () => "darwin");
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
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 { KubeconfigManager } from "./kubeconfig-manager";
|
||||
import loggerInjectable from "../../common/logger.injectable";
|
||||
|
||||
@ -15,9 +15,10 @@ import type { GetDirnameOfPath } from "../../common/path/get-dirname.injectable"
|
||||
import type { PathExists } from "../../common/fs/path-exists.injectable";
|
||||
import type { DeleteFile } from "../../common/fs/delete-file.injectable";
|
||||
import type { WriteFile } from "../../common/fs/write-file.injectable";
|
||||
import type { LazyInitializableState } from "../../common/initializable-state/create-lazy";
|
||||
|
||||
export interface KubeconfigManagerDependencies {
|
||||
readonly directoryForTemp: string;
|
||||
readonly directoryForTemp: LazyInitializableState<string>;
|
||||
readonly logger: Logger;
|
||||
readonly lensProxyPort: { get: () => number };
|
||||
joinPaths: JoinPaths;
|
||||
@ -97,7 +98,7 @@ export class KubeconfigManager {
|
||||
const { cluster } = this;
|
||||
const { contextName, id } = cluster;
|
||||
const tempFile = this.dependencies.joinPaths(
|
||||
this.dependencies.directoryForTemp,
|
||||
this.dependencies.directoryForTemp.get(),
|
||||
`kubeconfig-${id}`,
|
||||
);
|
||||
const kubeConfig = await cluster.getKubeconfig();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user