From 450ac378e1aeba32bd083a3825fa390080d94836 Mon Sep 17 00:00:00 2001
From: Sebastian Malton
Date: Mon, 20 Jun 2022 16:08:12 -0400
Subject: [PATCH] Get tests to pass
Signed-off-by: Sebastian Malton
---
src/common/cluster/cluster.ts | 3 +-
src/common/cluster/get-by-id.injectable.ts | 22 +++++++++
.../cluster/set-visible-channel.injectable.ts | 25 ++++++++++
src/common/ipc/cluster.ts | 1 -
.../connection-status.test.ts.snap | 48 +++++++++++++++++++
.../cluster/connection-status.test.ts | 29 ++++++++---
.../set-visible-listener.injectable.ts | 36 ++++++++++++++
.../setup-ipc-main-handlers.ts | 6 +--
src/main/kubectl/create-kubectl.injectable.ts | 6 ++-
.../cluster/send-set-visible.injectable.ts | 24 ++++++++++
.../cluster-frame-handler.injectable.ts | 11 ++++-
.../cluster-manager/cluster-frame-handler.ts | 47 +++++++++---------
.../parent-element.injectable.ts | 20 ++++++++
src/renderer/getDiForUnitTesting.tsx | 2 +
.../route-path-parameters.injectable.ts | 1 -
15 files changed, 242 insertions(+), 39 deletions(-)
create mode 100644 src/common/cluster/get-by-id.injectable.ts
create mode 100644 src/common/cluster/set-visible-channel.injectable.ts
create mode 100644 src/main/cluster/set-visible-listener.injectable.ts
create mode 100644 src/renderer/cluster/send-set-visible.injectable.ts
create mode 100644 src/renderer/components/cluster-manager/parent-element.injectable.ts
diff --git a/src/common/cluster/cluster.ts b/src/common/cluster/cluster.ts
index 37110bcb3c..517393a6bb 100644
--- a/src/common/cluster/cluster.ts
+++ b/src/common/cluster/cluster.ts
@@ -27,6 +27,7 @@ import assert from "assert";
import type { Logger } from "../logger";
import type { ReadFileSync } from "../fs/read-file-sync.injectable";
import type { EmitClusterConnectionUpdate } from "../../main/cluster/emit-connection-update.injectable";
+import type { CreateKubectl } from "../../main/kubectl/create-kubectl.injectable";
export interface ClusterDependencies {
readonly directoryForKubeConfigs: string;
@@ -34,7 +35,7 @@ export interface ClusterDependencies {
readonly detectorRegistry: DetectorRegistry;
createKubeconfigManager: (cluster: Cluster) => KubeconfigManager;
createContextHandler: (cluster: Cluster) => ClusterContextHandler;
- createKubectl: (clusterVersion: string) => Kubectl;
+ createKubectl: CreateKubectl;
createAuthorizationReview: (config: KubeConfig) => CanI;
createListNamespaces: (config: KubeConfig) => ListNamespaces;
createVersionDetector: (cluster: Cluster) => VersionDetector;
diff --git a/src/common/cluster/get-by-id.injectable.ts b/src/common/cluster/get-by-id.injectable.ts
new file mode 100644
index 0000000000..72140b4886
--- /dev/null
+++ b/src/common/cluster/get-by-id.injectable.ts
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+
+import type { ClusterId } from "../cluster-types";
+import type { Cluster } from "./cluster";
+import { getInjectable } from "@ogre-tools/injectable";
+import clusterStoreInjectable from "../cluster-store/cluster-store.injectable";
+
+export type GetClusterById = (id: ClusterId) => Cluster | undefined;
+
+const getClusterByIdInjectable = getInjectable({
+ id: "get-cluster-by-id",
+ instantiate: (di): GetClusterById => {
+ const store = di.inject(clusterStoreInjectable);
+
+ return (id) => store.getById(id);
+ },
+});
+
+export default getClusterByIdInjectable;
diff --git a/src/common/cluster/set-visible-channel.injectable.ts b/src/common/cluster/set-visible-channel.injectable.ts
new file mode 100644
index 0000000000..a89659701d
--- /dev/null
+++ b/src/common/cluster/set-visible-channel.injectable.ts
@@ -0,0 +1,25 @@
+/**
+ * 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 type { ClusterId } from "../cluster-types";
+import type { MessageChannel } from "../utils/channel/message-channel-injection-token";
+
+export type SetVisibleClusterMessage = {
+ action: "set";
+ clusterId: ClusterId;
+} | {
+ action: "clear";
+};
+
+export type SetVisibleClusterChannel = MessageChannel;
+
+const setVisibleClusterChannelInjectable = getInjectable({
+ id: "set-visible-cluster-channel",
+ instantiate: (): SetVisibleClusterChannel => ({
+ id: "set-visible-cluster-channel",
+ }),
+});
+
+export default setVisibleClusterChannelInjectable;
diff --git a/src/common/ipc/cluster.ts b/src/common/ipc/cluster.ts
index 4b27b12431..70c63c4c3f 100644
--- a/src/common/ipc/cluster.ts
+++ b/src/common/ipc/cluster.ts
@@ -4,7 +4,6 @@
*/
export const clusterSetFrameIdHandler = "cluster:set-frame-id";
-export const clusterVisibilityHandler = "cluster:visibility";
export const clusterRefreshHandler = "cluster:refresh";
export const clusterDisconnectHandler = "cluster:disconnect";
export const clusterDeleteHandler = "cluster:delete";
diff --git a/src/features/cluster/__snapshots__/connection-status.test.ts.snap b/src/features/cluster/__snapshots__/connection-status.test.ts.snap
index e51080682b..52edb3d179 100644
--- a/src/features/cluster/__snapshots__/connection-status.test.ts.snap
+++ b/src/features/cluster/__snapshots__/connection-status.test.ts.snap
@@ -67,3 +67,51 @@ exports[`cluster connection status when navigating to cluster connection renders
+
+
+
+
+
+
+ minikube-2
+
+
+
+
+ Connecting
+ …
+
+
+
+
+
+
+
+
+