From 76d707d25729d63e3bd75a84af4339e404877de5 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 2 Aug 2022 09:41:23 -0700 Subject: [PATCH] Fix CPU spike when opening PodDetails from MonacoEditor (#5642) (cherry picked from commit 95ed0dda1bc213310536833a32e7e463662d041b) --- .../drawer-param-toggler.test.tsx.snap | 134 ++++++++++++++++++ .../drawer/drawer-param-toggler.test.tsx | 59 ++++++++ .../drawer/drawer-param-toggler.tsx | 8 +- 3 files changed, 199 insertions(+), 2 deletions(-) create mode 100644 src/renderer/components/drawer/__snapshots__/drawer-param-toggler.test.tsx.snap create mode 100644 src/renderer/components/drawer/drawer-param-toggler.test.tsx diff --git a/src/renderer/components/drawer/__snapshots__/drawer-param-toggler.test.tsx.snap b/src/renderer/components/drawer/__snapshots__/drawer-param-toggler.test.tsx.snap new file mode 100644 index 0000000000..7b4c9c22e4 --- /dev/null +++ b/src/renderer/components/drawer/__snapshots__/drawer-param-toggler.test.tsx.snap @@ -0,0 +1,134 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[` after clicking the toggle after clicking the toggle again renders 1`] = ` + +
+
+
+
+ Foo +
+ +
+
+
+
+ +`; + +exports[` after clicking the toggle renders 1`] = ` + +
+
+
+
+ Foo +
+ +
+
+
+
+
+
+ +`; + +exports[` renders 1`] = ` + +
+
+
+
+ Foo +
+ +
+
+
+
+ +`; diff --git a/src/renderer/components/drawer/drawer-param-toggler.test.tsx b/src/renderer/components/drawer/drawer-param-toggler.test.tsx new file mode 100644 index 0000000000..e9d5104afe --- /dev/null +++ b/src/renderer/components/drawer/drawer-param-toggler.test.tsx @@ -0,0 +1,59 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +import type { RenderResult } from "@testing-library/react"; +import { render } from "@testing-library/react"; +import React from "react"; +import { DrawerParamToggler } from "./drawer-param-toggler"; + +describe("", () => { + let result: RenderResult; + + beforeEach(() => { + result = render(( + +
+
+ )); + }); + + it("renders", () => { + expect(result.baseElement).toMatchSnapshot(); + }); + + it("does not render children by default", () => { + expect(result.queryByTestId("drawer-child")).toBeNull(); + }); + + describe("after clicking the toggle", () => { + beforeEach(() => { + result.getByTestId("drawer-param-toggler").click(); + }); + + it("renders", () => { + expect(result.baseElement).toMatchSnapshot(); + }); + + it("renders children", () => { + expect(result.queryByTestId("drawer-child")).not.toBeNull(); + }); + + describe("after clicking the toggle again", () => { + beforeEach(() => { + result.getByTestId("drawer-param-toggler").click(); + }); + + it("renders", () => { + expect(result.baseElement).toMatchSnapshot(); + }); + + it("does not children", () => { + expect(result.queryByTestId("drawer-child")).toBeNull(); + }); + }); + }); +}); diff --git a/src/renderer/components/drawer/drawer-param-toggler.tsx b/src/renderer/components/drawer/drawer-param-toggler.tsx index 44d813a25e..42d4c056e9 100644 --- a/src/renderer/components/drawer/drawer-param-toggler.tsx +++ b/src/renderer/components/drawer/drawer-param-toggler.tsx @@ -33,13 +33,17 @@ export class DrawerParamToggler extends React.Component
{label}
-
+
{link}
- {children} + {open && children}
);