From 667e90ba0e238254b24a20ef17a2a21dec68085c Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Mon, 29 Nov 2021 08:10:35 +0200 Subject: [PATCH] Make component transient Co-authored-by: Mikko Aspiala Signed-off-by: Janne Savolainen --- .../kube-object-menu.test.tsx.snap | 28 ++++++++++++++--- .../kube-object-menu.injectable.tsx | 6 ++-- .../kube-object-menu.test.tsx | 30 +++++++++++++++++++ 3 files changed, 58 insertions(+), 6 deletions(-) diff --git a/src/renderer/components/kube-object-menu/__snapshots__/kube-object-menu.test.tsx.snap b/src/renderer/components/kube-object-menu/__snapshots__/kube-object-menu.test.tsx.snap index c7b3a53142..f58d6ce6df 100644 --- a/src/renderer/components/kube-object-menu/__snapshots__/kube-object-menu.test.tsx.snap +++ b/src/renderer/components/kube-object-menu/__snapshots__/kube-object-menu.test.tsx.snap @@ -18,7 +18,7 @@ exports[`kube-object-menu given kube object renders 1`] = ` > `; + +exports[`kube-object-menu given rendered multiple times, renders separate instances 1`] = ` + +
+
+ +`; diff --git a/src/renderer/components/kube-object-menu/kube-object-menu.injectable.tsx b/src/renderer/components/kube-object-menu/kube-object-menu.injectable.tsx index 202c398690..e63d994eef 100644 --- a/src/renderer/components/kube-object-menu/kube-object-menu.injectable.tsx +++ b/src/renderer/components/kube-object-menu/kube-object-menu.injectable.tsx @@ -28,7 +28,7 @@ import { } from "./kube-object-menu"; import type { KubeObject } from "../../../common/k8s-api/kube-object"; -import type { Injectable } from "@ogre-tools/injectable"; +import { lifecycleEnum, Injectable } from "@ogre-tools/injectable"; import apiManagerInjectable from "./dependencies/apiManager.injectable"; import clusterNameInjectable from "./dependencies/clusterName.injectable"; import kubeObjectMenuRegistryInjectable from "./dependencies/kubeObjectMenuRegistry.injectable"; @@ -49,8 +49,10 @@ const KubeObjectMenuInjectable: Injectable< }), instantiate: (dependencies, props) => ( - {...dependencies} {...props} /> + ), + + lifecycle: lifecycleEnum.transient, }; export default KubeObjectMenuInjectable; diff --git a/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx b/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx index bf7fb84137..ba7a5f66c9 100644 --- a/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx +++ b/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx @@ -110,6 +110,36 @@ describe("kube-object-menu", () => { }).not.toThrow(); }); + it("given rendered multiple times, renders separate instances", () => { + di.override(clusterInjectable, null); + + const { baseElement } = render( + <> + + + , + , + ); + + expect(baseElement).toMatchSnapshot(); + }); + it("given no kube object, renders", () => { objectStub = null;