From 6a7cadef70828a55f4eeee1dd0eb026c497c4000 Mon Sep 17 00:00:00 2001
From: Tamir Abutbul <1tamir198@gmail.com>
Date: Tue, 23 Jan 2024 19:46:42 +0200
Subject: [PATCH] Cluter list test (#503)
* Render cluster list on the screen
* Init the test
* Finish the test
---
frontend/src/components/ClustersList.cy.tsx | 69 +++++++++++++++++++++
frontend/src/components/ClustersList.tsx | 6 +-
2 files changed, 72 insertions(+), 3 deletions(-)
create mode 100644 frontend/src/components/ClustersList.cy.tsx
diff --git a/frontend/src/components/ClustersList.cy.tsx b/frontend/src/components/ClustersList.cy.tsx
new file mode 100644
index 0000000..5871ee0
--- /dev/null
+++ b/frontend/src/components/ClustersList.cy.tsx
@@ -0,0 +1,69 @@
+import { AppContextProvider } from "../context/AppContext";
+import ClustersList from "./ClustersList";
+import { BrowserRouter } from "react-router-dom";
+import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
+import { Release } from "../data/types";
+
+type ClustersListProps = {
+ onClusterChange: (clusterName: string) => void;
+ selectedCluster: string;
+ filteredNamespaces: string[];
+ installedReleases?: Release[];
+};
+
+const generateTestReleaseData = (): Release => ({
+ id: "id",
+ name: "helm-dashboard",
+ namespace: "default",
+ revision: 1,
+ updated: "2024-01-23T15:37:35.0992836+02:00",
+ status: "deployed",
+ chart: "helm-dashboard-0.1.10",
+ chart_name: "helm-dashboard",
+ chart_ver: "0.1.10",
+ app_version: "1.3.3",
+ icon: "https://raw.githubusercontent.com/komodorio/helm-dashboard/main/pkg/dashboard/static/logo.svg",
+ description: "A GUI Dashboard for Helm by Komodor",
+ has_tests: true,
+ chartName: "helm-dashboard",
+ chartVersion: "0.1.10",
+});
+
+const renderClustersList = (props: ClustersListProps) => {
+ const queryClient = new QueryClient();
+ cy.mount(
+
+
+
+
+
+
+
+ );
+};
+
+describe("ClustersList", () => {
+ it("Got one cluster information", () => {
+ renderClustersList({
+ selectedCluster: "minikube",
+ filteredNamespaces: ["default"],
+ onClusterChange: () => {},
+ installedReleases: [generateTestReleaseData()],
+ });
+
+ cy.get(".data-cy-clusterName").contains("minikube");
+ cy.get(".data-cy-clusterList-namespace").contains("default");
+ cy.get(".data-cy-clustersInput").should("be.checked");
+ });
+
+ it("Dont have a cluster chekced", () => {
+ renderClustersList({
+ selectedCluster: "",
+ filteredNamespaces: [""],
+ onClusterChange: () => {},
+ installedReleases: [generateTestReleaseData()],
+ });
+
+ cy.get(".data-cy-clustersInput").should("not.be.checked");
+ });
+});
diff --git a/frontend/src/components/ClustersList.tsx b/frontend/src/components/ClustersList.tsx
index f416581..ea4d34e 100644
--- a/frontend/src/components/ClustersList.tsx
+++ b/frontend/src/components/ClustersList.tsx
@@ -112,10 +112,10 @@ function ClustersList({
return (
{
onClusterChange(e.target.value);
}}
@@ -154,7 +154,7 @@ function ClustersList({
/>
))}