From ec509fcb29889b27e337f81baa411007274ee939 Mon Sep 17 00:00:00 2001 From: Jim Ehrismann Date: Thu, 30 Jun 2022 18:15:31 -0400 Subject: [PATCH] address review comments Signed-off-by: Jim Ehrismann --- ...acters-in-page-registrations.test.tsx.snap | 8 +- .../navigate-to-extension-page.test.tsx.snap | 20 ++- .../navigating-between-routes.test.tsx.snap | 8 +- ...ation-using-application-menu.test.tsx.snap | 8 +- ...g-update-using-topbar-button.test.tsx.snap | 4 +- .../installing-update-using-tray.test.ts.snap | 26 +++- .../installing-update.test.ts.snap | 26 +++- ...eriodical-checking-of-updates.test.ts.snap | 4 +- ...selection-of-update-stability.test.ts.snap | 4 +- .../installing-update.test.ts | 16 ++- ...gation-using-application-menu.test.ts.snap | 8 +- ...elm-repository-in-preferences.test.ts.snap | 68 +++++++--- ...tory-from-list-in-preferences.test.ts.snap | 40 ++++-- ...m-repositories-in-preferences.test.ts.snap | 40 ++++-- ...ive-repository-in-preferences.test.ts.snap | 16 ++- .../closing-preferences.test.tsx.snap | 32 +++-- ...on-to-application-preferences.test.ts.snap | 8 +- ...igation-to-editor-preferences.test.ts.snap | 8 +- ...tension-specific-preferences.test.tsx.snap | 40 ++++-- ...ion-to-kubernetes-preferences.test.ts.snap | 8 +- ...vigation-to-proxy-preferences.test.ts.snap | 8 +- ...ion-to-telemetry-preferences.test.tsx.snap | 20 ++- ...ation-to-terminal-preferences.test.ts.snap | 8 +- ...gation-using-application-menu.test.ts.snap | 8 +- .../navigation-using-tray.test.ts.snap | 8 +- ...-originating-from-extensions.test.tsx.snap | 124 +++++++++++++++++ ...items-originating-from-extensions.test.tsx | 128 ++++++++++++++++++ ...gation-using-application-menu.test.ts.snap | 8 +- .../status-bar/auto-update-component.tsx | 55 +++----- ...status-bar-item-registrator.injectable.tsx | 8 +- .../status-bar-items.injectable.tsx | 10 +- .../components/status-bar/status-bar.tsx | 4 +- .../test-utils/get-renderer-extension-fake.ts | 6 +- 33 files changed, 622 insertions(+), 165 deletions(-) create mode 100644 src/behaviours/status-bar/__snapshots__/status-bar-items-originating-from-extensions.test.tsx.snap create mode 100644 src/behaviours/status-bar/status-bar-items-originating-from-extensions.test.tsx diff --git a/src/behaviours/__snapshots__/extension-special-characters-in-page-registrations.test.tsx.snap b/src/behaviours/__snapshots__/extension-special-characters-in-page-registrations.test.tsx.snap index 39921a654b..91606c6ec9 100644 --- a/src/behaviours/__snapshots__/extension-special-characters-in-page-registrations.test.tsx.snap +++ b/src/behaviours/__snapshots__/extension-special-characters-in-page-registrations.test.tsx.snap @@ -52,12 +52,13 @@ exports[`extension special characters in page registrations renders 1`] = ` >
No new updates available
@@ -65,6 +66,7 @@ exports[`extension special characters in page registrations renders 1`] = `
No new updates available
@@ -138,6 +141,7 @@ exports[`extension special characters in page registrations when navigating to r
diff --git a/src/behaviours/__snapshots__/navigate-to-extension-page.test.tsx.snap b/src/behaviours/__snapshots__/navigate-to-extension-page.test.tsx.snap index ba9273cc17..9ed5890940 100644 --- a/src/behaviours/__snapshots__/navigate-to-extension-page.test.tsx.snap +++ b/src/behaviours/__snapshots__/navigate-to-extension-page.test.tsx.snap @@ -52,12 +52,13 @@ exports[`navigate to extension page renders 1`] = ` >
No new updates available
@@ -65,6 +66,7 @@ exports[`navigate to extension page renders 1`] = `
No new updates available
@@ -138,6 +141,7 @@ exports[`navigate to extension page when extension navigates to child route rend
@@ -201,12 +205,13 @@ exports[`navigate to extension page when extension navigates to route with param >
No new updates available
@@ -214,6 +219,7 @@ exports[`navigate to extension page when extension navigates to route with param
@@ -293,12 +299,13 @@ exports[`navigate to extension page when extension navigates to route without pa >
No new updates available
@@ -306,6 +313,7 @@ exports[`navigate to extension page when extension navigates to route without pa
@@ -385,12 +393,13 @@ exports[`navigate to extension page when extension navigates to route without pa >
No new updates available
@@ -398,6 +407,7 @@ exports[`navigate to extension page when extension navigates to route without pa
diff --git a/src/behaviours/__snapshots__/navigating-between-routes.test.tsx.snap b/src/behaviours/__snapshots__/navigating-between-routes.test.tsx.snap index 65c8bbd72c..bdc7fa31c1 100644 --- a/src/behaviours/__snapshots__/navigating-between-routes.test.tsx.snap +++ b/src/behaviours/__snapshots__/navigating-between-routes.test.tsx.snap @@ -52,12 +52,13 @@ exports[`navigating between routes given route with optional path parameters whe >
No new updates available
@@ -65,6 +66,7 @@ exports[`navigating between routes given route with optional path parameters whe
@@ -131,12 +133,13 @@ exports[`navigating between routes given route without path parameters when navi
   >
     
No new updates available
@@ -144,6 +147,7 @@ exports[`navigating between routes given route without path parameters when navi
diff --git a/src/behaviours/add-cluster/__snapshots__/navigation-using-application-menu.test.tsx.snap b/src/behaviours/add-cluster/__snapshots__/navigation-using-application-menu.test.tsx.snap index c7aca43db0..09f28e90a3 100644 --- a/src/behaviours/add-cluster/__snapshots__/navigation-using-application-menu.test.tsx.snap +++ b/src/behaviours/add-cluster/__snapshots__/navigation-using-application-menu.test.tsx.snap @@ -52,12 +52,13 @@ exports[`add-cluster - navigation using application menu renders 1`] = ` >
No new updates available
@@ -65,6 +66,7 @@ exports[`add-cluster - navigation using application menu renders 1`] = `
No new updates available
@@ -138,6 +141,7 @@ exports[`add-cluster - navigation using application menu when navigating to add
No new updates available
@@ -66,6 +67,7 @@ exports[`encourage user to update when sufficient time passed since update was d
No new updates available
@@ -66,6 +67,7 @@ exports[`installing update using tray when started renders 1`] = `
Checking for updates...
@@ -144,6 +147,7 @@ exports[`installing update using tray when started when user checks for updates
- Download for version some-version started... + Downloading version some-version...
Download of update failed
@@ -315,6 +322,7 @@ exports[`installing update using tray when started when user checks for updates
some-version is available
@@ -408,6 +417,7 @@ exports[`installing update using tray when started when user checks for updates
No new updates available
@@ -483,6 +494,7 @@ exports[`installing update using tray when started when user checks for updates
No new updates available
@@ -66,6 +67,7 @@ exports[`installing update when started renders 1`] = `
Checking for updates...
@@ -144,6 +147,7 @@ exports[`installing update when started when user checks for updates renders 1`]
- Download for version some-version started... + Downloading version some-version...
Download of update failed
@@ -315,6 +322,7 @@ exports[`installing update when started when user checks for updates when new up
some-version is available
@@ -408,6 +417,7 @@ exports[`installing update when started when user checks for updates when new up
No new updates available
@@ -483,6 +494,7 @@ exports[`installing update when started when user checks for updates when no new
No new updates available
@@ -66,6 +67,7 @@ exports[`periodical checking of updates given updater is enabled and configurati
No new updates available
@@ -66,6 +67,7 @@ exports[`selection of update stability when started renders 1`] = `
{ }); it("notifies the user that checking for updates is happening", () => { - expect(rendered.getByTestId("auto-update-component")).toHaveTextContent("Checking for updates..."); + expect(rendered.getByTestId("app-update-checking")).toBeInTheDocument(); }); it("renders", () => { @@ -103,7 +103,7 @@ describe("installing update", () => { }); it("notifies the user", () => { - expect(rendered.getByTestId("auto-update-component")).toHaveTextContent("No new updates available"); + expect(rendered.getByTestId("app-update-not-available")).toBeInTheDocument(); }); it("does not start downloading update", () => { @@ -113,6 +113,12 @@ describe("installing update", () => { it("renders", () => { expect(rendered.baseElement).toMatchSnapshot(); }); + + it.skip("when 5 seconds elapses, clears the notification to the user", () => { + jest.advanceTimersByTime(6000); + + expect(rendered.getByTestId("app-update-idle")).toBeInTheDocument(); + }); }); describe("when new update is discovered", () => { @@ -130,7 +136,7 @@ describe("installing update", () => { }); it("notifies the user that download is happening", () => { - expect(rendered.getByTestId("auto-update-component")).toHaveTextContent("Download for version some-version started..."); + expect(rendered.getByTestId("app-update-downloading")).toBeInTheDocument(); }); it("renders", () => { @@ -147,7 +153,7 @@ describe("installing update", () => { }); it("notifies the user about failed download", () => { - expect(rendered.getByTestId("auto-update-component")).toHaveTextContent("Download of update failed"); + expect(rendered.getByTestId("app-update-download-failed")).toBeInTheDocument(); }); it("renders", () => { @@ -165,7 +171,7 @@ describe("installing update", () => { }); it("notifies the user about successful download", () => { - expect(rendered.getByTestId("auto-update-component")).toHaveTextContent("some-version is available"); + expect(rendered.getByTestId("app-update-available")).toBeInTheDocument(); }); it("renders", () => { diff --git a/src/behaviours/extensions/__snapshots__/navigation-using-application-menu.test.ts.snap b/src/behaviours/extensions/__snapshots__/navigation-using-application-menu.test.ts.snap index 0b5dba1c80..a549889d94 100644 --- a/src/behaviours/extensions/__snapshots__/navigation-using-application-menu.test.ts.snap +++ b/src/behaviours/extensions/__snapshots__/navigation-using-application-menu.test.ts.snap @@ -52,12 +52,13 @@ exports[`extensions - navigation using application menu renders 1`] = ` >
No new updates available
@@ -65,6 +66,7 @@ exports[`extensions - navigation using application menu renders 1`] = `
No new updates available
@@ -138,6 +141,7 @@ exports[`extensions - navigation using application menu when navigating to exten
No new updates available
@@ -66,6 +67,7 @@ exports[`add custom helm repository in preferences when navigating to preference
No new updates available
@@ -600,6 +603,7 @@ exports[`add custom helm repository in preferences when navigating to preference
No new updates available
@@ -1141,6 +1146,7 @@ exports[`add custom helm repository in preferences when navigating to preference
No new updates available
@@ -1791,6 +1798,7 @@ exports[`add custom helm repository in preferences when navigating to preference
No new updates available
@@ -2340,6 +2349,7 @@ exports[`add custom helm repository in preferences when navigating to preference
No new updates available
@@ -2990,6 +3001,7 @@ exports[`add custom helm repository in preferences when navigating to preference
No new updates available
@@ -3816,6 +3829,7 @@ exports[`add custom helm repository in preferences when navigating to preference
+ data-testid="app-update-not-available" + > + No new updates available +
+ data-testid="app-update-not-available" + > + No new updates available +
+ data-testid="app-update-not-available" + > + No new updates available +
+ data-testid="app-update-not-available" + > + No new updates available +
+ data-testid="app-update-not-available" + > + No new updates available +
No new updates available
@@ -66,6 +67,7 @@ exports[`add helm repository from list in preferences when navigating to prefere
No new updates available
@@ -600,6 +603,7 @@ exports[`add helm repository from list in preferences when navigating to prefere
No new updates available
@@ -1141,6 +1146,7 @@ exports[`add helm repository from list in preferences when navigating to prefere
No new updates available
@@ -1735,6 +1742,7 @@ exports[`add helm repository from list in preferences when navigating to prefere
No new updates available
@@ -2276,6 +2285,7 @@ exports[`add helm repository from list in preferences when navigating to prefere
No new updates available
@@ -2817,6 +2828,7 @@ exports[`add helm repository from list in preferences when navigating to prefere
No new updates available
@@ -3351,6 +3364,7 @@ exports[`add helm repository from list in preferences when navigating to prefere
No new updates available
@@ -3922,6 +3937,7 @@ exports[`add helm repository from list in preferences when navigating to prefere
No new updates available
@@ -4556,6 +4573,7 @@ exports[`add helm repository from list in preferences when navigating to prefere
No new updates available
@@ -5127,6 +5146,7 @@ exports[`add helm repository from list in preferences when navigating to prefere
No new updates available
@@ -66,6 +67,7 @@ exports[`listing active helm repositories in preferences when navigating to pref
No new updates available
@@ -600,6 +603,7 @@ exports[`listing active helm repositories in preferences when navigating to pref
No new updates available
@@ -1134,6 +1139,7 @@ exports[`listing active helm repositories in preferences when navigating to pref
No new updates available
@@ -1560,6 +1567,7 @@ exports[`listing active helm repositories in preferences when navigating to pref
No new updates available
@@ -2094,6 +2103,7 @@ exports[`listing active helm repositories in preferences when navigating to pref
No new updates available
@@ -2520,6 +2531,7 @@ exports[`listing active helm repositories in preferences when navigating to pref
No new updates available
@@ -3054,6 +3067,7 @@ exports[`listing active helm repositories in preferences when navigating to pref
No new updates available
@@ -3625,6 +3640,7 @@ exports[`listing active helm repositories in preferences when navigating to pref
No new updates available
@@ -4051,6 +4068,7 @@ exports[`listing active helm repositories in preferences when navigating to pref
No new updates available
@@ -4477,6 +4496,7 @@ exports[`listing active helm repositories in preferences when navigating to pref
No new updates available
@@ -66,6 +67,7 @@ exports[`remove helm repository from list of active repositories in preferences
No new updates available
@@ -600,6 +603,7 @@ exports[`remove helm repository from list of active repositories in preferences
No new updates available
@@ -1141,6 +1146,7 @@ exports[`remove helm repository from list of active repositories in preferences
No new updates available
@@ -1682,6 +1689,7 @@ exports[`remove helm repository from list of active repositories in preferences
No new updates available
@@ -65,6 +66,7 @@ exports[`preferences - closing-preferences given accessing preferences directly
No new updates available
@@ -671,6 +674,7 @@ exports[`preferences - closing-preferences given accessing preferences directly
No new updates available
@@ -881,6 +886,7 @@ exports[`preferences - closing-preferences given accessing preferences directly
@@ -944,12 +950,13 @@ exports[`preferences - closing-preferences given accessing preferences directly >
No new updates available
@@ -957,6 +964,7 @@ exports[`preferences - closing-preferences given accessing preferences directly
@@ -1020,12 +1028,13 @@ exports[`preferences - closing-preferences given already in a page and then navi >
No new updates available
@@ -1033,6 +1042,7 @@ exports[`preferences - closing-preferences given already in a page and then navi
No new updates available
@@ -1639,6 +1650,7 @@ exports[`preferences - closing-preferences given already in a page and then navi
No new updates available
@@ -1849,6 +1862,7 @@ exports[`preferences - closing-preferences given already in a page and then navi
No new updates available
@@ -2059,6 +2074,7 @@ exports[`preferences - closing-preferences given already in a page and then navi
No new updates available
@@ -65,6 +66,7 @@ exports[`preferences - navigation to application preferences given in some child
No new updates available
@@ -335,6 +338,7 @@ exports[`preferences - navigation to application preferences given in some child
No new updates available
@@ -65,6 +66,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
No new updates available
@@ -659,6 +662,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
No new updates available
@@ -80,6 +81,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
No new updates available
@@ -324,6 +327,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
No new updates available
@@ -580,6 +585,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
No new updates available
@@ -836,6 +843,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
No new updates available
@@ -1115,6 +1124,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
No new updates available
@@ -1709,6 +1720,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
No new updates available
@@ -2338,6 +2351,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
No new updates available
@@ -2606,6 +2621,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
No new updates available
@@ -2819,6 +2836,7 @@ exports[`preferences - navigation to extension specific preferences when navigat
No new updates available
@@ -3063,6 +3082,7 @@ exports[`preferences - navigation to extension specific preferences when navigat
No new updates available
@@ -65,6 +66,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
No new updates available
@@ -659,6 +662,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
No new updates available
@@ -65,6 +66,7 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
No new updates available
@@ -659,6 +662,7 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
No new updates available
@@ -65,6 +66,7 @@ exports[`preferences - navigation to telemetry preferences given URL for Sentry
No new updates available
@@ -321,6 +324,7 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
No new updates available
@@ -915,6 +920,7 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
No new updates available
@@ -1521,6 +1528,7 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
No new updates available
@@ -1765,6 +1774,7 @@ exports[`preferences - navigation to telemetry preferences given no URL for Sent
No new updates available
@@ -65,6 +66,7 @@ exports[`preferences - navigation to terminal preferences given in preferences,
No new updates available
@@ -659,6 +662,7 @@ exports[`preferences - navigation to terminal preferences given in preferences,
No new updates available
@@ -65,6 +66,7 @@ exports[`preferences - navigation using application menu renders 1`] = `
No new updates available
@@ -138,6 +141,7 @@ exports[`preferences - navigation using application menu when navigating to pref
No new updates available
@@ -66,6 +67,7 @@ exports[`show-about-using-tray renders 1`] = `
No new updates available
@@ -141,6 +144,7 @@ exports[`show-about-using-tray when navigating using tray renders 1`] = `
+
+
+
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
+
+ No new updates available +
+
+
+
+ left1 +
+
+
+
+ left2 +
+
+
+
+
+
+ right3 +
+
+
+ + right2 + +
+
+ + right1 + +
+
+
+
+
+ +`; diff --git a/src/behaviours/status-bar/status-bar-items-originating-from-extensions.test.tsx b/src/behaviours/status-bar/status-bar-items-originating-from-extensions.test.tsx new file mode 100644 index 0000000000..08c817399f --- /dev/null +++ b/src/behaviours/status-bar/status-bar-items-originating-from-extensions.test.tsx @@ -0,0 +1,128 @@ +/** + * 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 React from "react"; +import type { GetRendererExtensionFake, TestExtension } from "../../renderer/components/test-utils/get-renderer-extension-fake"; +import { getRendererExtensionFakeFor } from "../../renderer/components/test-utils/get-renderer-extension-fake"; +import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; +import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; +import getRandomIdInjectable from "../../common/utils/get-random-id.injectable"; + +describe("status-bar-items-originating-from-extensions", () => { + let applicationBuilder: ApplicationBuilder; + + beforeEach(() => { + applicationBuilder = getApplicationBuilder(); + + applicationBuilder.beforeApplicationStart(({ rendererDi }) => { + rendererDi.unoverride(getRandomIdInjectable); + rendererDi.permitSideEffects(getRandomIdInjectable); + }); + }); + + describe("when application starts", () => { + let rendered: RenderResult; + let getRendererExtensionFake: GetRendererExtensionFake; + + beforeEach(async () => { + rendered = await applicationBuilder.render(); + getRendererExtensionFake = getRendererExtensionFakeFor(applicationBuilder); + }); + + it("when multiple extensions with status bar items are loaded, shows items in correct order", () => { + const testExtension1 = getRendererExtensionFake({ + id: "some-id", name: "some-name", statusBarItems: [{ + components: { + Item: () =>
extension1
, + position: "right", + }, + }], + }); + + const testExtension2 = getRendererExtensionFake({ + id: "some-other-id", name: "some-other-name", statusBarItems: [{ + components: { + Item: () =>
extension2
, + position: "right", + }, + }], + }); + + applicationBuilder.extensions.renderer.enable(testExtension1, testExtension2); + + const actual = rendered.getByTestId("status-bar-right"); + const positions = getTestStatusBarTexts(actual, ["extension1", "extension2"]); + + expect(positions).toEqual(["extension2", "extension1"]); + }); + + describe("when extension with status bar items is loaded", () => { + let testExtension: TestExtension; + + beforeEach(() => { + testExtension = getRendererExtensionFake({ + id: "some-id", name: "some-name", statusBarItems: [{ + item: () => right1, + }, + { + item: () => right2, + }, + { + components: { + Item: () =>
right3
, + position: "right", + }, + }, + { + components: { + Item: () =>
left1
, + position: "left", + }, + }, + { + components: { + Item: () =>
left2
, + position: "left", + }, + }], + }); + + applicationBuilder.extensions.renderer.enable(testExtension); + }); + + it("renders", () => { + expect(rendered.baseElement).toMatchSnapshot(); + }); + + it("shows right side status bar items in the correct order", () => { + const actual = rendered.getByTestId("status-bar-right"); + const positions = getTestStatusBarTexts(actual, ["right1", "right2", "right3"]); + + expect(positions).toEqual(["right3", "right2", "right1"]); + }); + + it("shows left side status bar items in the correct order", () => { + const actual = rendered.getByTestId("status-bar-left"); + const positions = getTestStatusBarTexts(actual, ["left2", "left1"]); + + expect(positions).toEqual(["left1", "left2"]); + }); + + it("when the extension is removed, shows there are no extension status bar items", () => { + + applicationBuilder.extensions.renderer.disable(testExtension); + + const actual = rendered.queryAllByTestId("some-testId"); + + expect(actual).toHaveLength(0); + + }); + }); + }); +}); + +const getTestStatusBarTexts = (actual: HTMLElement, expectedTexts: string[]) => { + return Array.from(actual.children).map(elem => elem.textContent).filter(elem => elem && expectedTexts.includes(elem)); +}; diff --git a/src/behaviours/welcome/__snapshots__/navigation-using-application-menu.test.ts.snap b/src/behaviours/welcome/__snapshots__/navigation-using-application-menu.test.ts.snap index 30789379c9..5f76677010 100644 --- a/src/behaviours/welcome/__snapshots__/navigation-using-application-menu.test.ts.snap +++ b/src/behaviours/welcome/__snapshots__/navigation-using-application-menu.test.ts.snap @@ -52,12 +52,13 @@ exports[`welcome - navigation using application menu renders 1`] = ` >
No new updates available
@@ -65,6 +66,7 @@ exports[`welcome - navigation using application menu renders 1`] = `
No new updates available
@@ -138,6 +141,7 @@ exports[`welcome - navigation using application menu when navigating to welcome
JSX.Element; } -const EndNote = ({ version, note }: EndNoteProps) => { - const [idling, setIdling] = useState(false); +const EndNote = observer(({ version, note }: EndNoteProps) => { + const [start] = useState(Date.now()); - useEffect(() => { - const timerId = setTimeout(() => setIdling(true), 5000); - - return () => clearTimeout(timerId); - }); - - if (idling) { + if (start + 5000 <= reactiveDateNow()) { return idle(); } - + return note(version ?? ""); -}; - -const DivWithTestId = (text: string) =>
{text}
; +}); const checking = () => ( <> - {DivWithTestId("Checking for updates..." )} +
Checking for updates...
); -const available = (version: string) => DivWithTestId(`${version ?? "Update"} is available`); +const available = (version: string) =>
{`${version ?? "Update"} is available`}
; -const notAvailable = () => DivWithTestId("No new updates available"); +const notAvailable = () =>
No new updates available
; -const downloading = (version: string, percentDone: number) => { - if ( percentDone === 0 ) { - return ( - <> - {DivWithTestId(`Download for version ${version} started...`)} - - - ); - } - - return DivWithTestId(`Download for version ${version} ${percentDone}%...`); +const downloading = (version: string) => { + return ( + <> +
{`Downloading version ${version}...`}
+ + + ); }; -const downloadFailed = (errMsg: string) => DivWithTestId(errMsg); +const downloadFailed = (errMsg: string) =>
{errMsg}
; -const idle = () => DivWithTestId(""); +const idle = () =>
; export const NonInjectedAutoUpdateComponent = observer(({ @@ -83,15 +72,13 @@ export const NonInjectedAutoUpdateComponent = observer(({ }: Dependencies) => { const discoveredVersion = discoveredVersionState.value.get(); - const { percentage, failed } = progressOfUpdateDownload.value.get(); + const { failed } = progressOfUpdateDownload.value.get(); if (downloadingUpdateState.value.get()) { assert(discoveredVersion); - const roundedPercentage = Math.round(percentage); - - return downloading(discoveredVersion.version, roundedPercentage); + return downloading(discoveredVersion.version); } if (checkingForUpdatesState.value.get()) { diff --git a/src/renderer/components/status-bar/status-bar-item-registrator.injectable.tsx b/src/renderer/components/status-bar/status-bar-item-registrator.injectable.tsx index be9ce93014..2b31c9b312 100644 --- a/src/renderer/components/status-bar/status-bar-item-registrator.injectable.tsx +++ b/src/renderer/components/status-bar/status-bar-item-registrator.injectable.tsx @@ -12,7 +12,8 @@ import { statusBarItemInjectionToken } from "./status-bar-item-injection-token"; import type { StatusBarRegistration } from "./status-bar-registration"; import React from "react"; import getRandomIdInjectable from "../../../common/utils/get-random-id.injectable"; -import logger from "../../../common/logger"; +import loggerInjectable from "../../../common/logger.injectable"; +import type { Logger } from "../../../common/logger"; const statusBarItemRegistratorInjectable = getInjectable({ id: "status-bar-item-registrator", @@ -20,9 +21,10 @@ const statusBarItemRegistratorInjectable = getInjectable({ instantiate: (di) => (extension) => { const rendererExtension = extension as LensRendererExtension; const getRandomId = di.inject(getRandomIdInjectable); + const logger = di.inject(loggerInjectable); return rendererExtension.statusBarItems.flatMap( - toItemInjectableFor(rendererExtension, getRandomId), + toItemInjectableFor(rendererExtension, getRandomId, logger), ); }, @@ -31,7 +33,7 @@ const statusBarItemRegistratorInjectable = getInjectable({ export default statusBarItemRegistratorInjectable; -const toItemInjectableFor = (extension: LensRendererExtension, getRandomId: () => string) => { +const toItemInjectableFor = (extension: LensRendererExtension, getRandomId: () => string, logger: Logger) => { return (registration: StatusBarRegistration): Injectable[] => { const id = `${getRandomId()}-status-bar-item-for-extension-${extension.sanitizedExtensionId}`; let component: React.ComponentType; diff --git a/src/renderer/components/status-bar/status-bar-items.injectable.tsx b/src/renderer/components/status-bar/status-bar-items.injectable.tsx index d6cf812e4a..855b8654c9 100644 --- a/src/renderer/components/status-bar/status-bar-items.injectable.tsx +++ b/src/renderer/components/status-bar/status-bar-items.injectable.tsx @@ -27,17 +27,9 @@ function getStatusBarItems({ registrations }: Dependencies): IComputedValue -
+
{left.map((Item, index) => (
))}
-
+
{right.map((Item, index) => (
diff --git a/src/renderer/components/test-utils/get-renderer-extension-fake.ts b/src/renderer/components/test-utils/get-renderer-extension-fake.ts index fb31ee70b9..3fb720bf0f 100644 --- a/src/renderer/components/test-utils/get-renderer-extension-fake.ts +++ b/src/renderer/components/test-utils/get-renderer-extension-fake.ts @@ -17,8 +17,10 @@ export class TestExtension extends LensRendererExtension {} export type FakeExtensionData = SetRequired, "id" | "name">; -export const getRendererExtensionFakeFor = (builder: ApplicationBuilder) => ( - function getRendererExtensionFake({ id, name, ...rest }: FakeExtensionData) { +export type GetRendererExtensionFake = (fakeExtensionData: FakeExtensionData) => TestExtension; + +export const getRendererExtensionFakeFor = (builder: ApplicationBuilder): GetRendererExtensionFake => ( + function getRendererExtensionFake({ id, name, ...rest }) { const instance = new TestExtension({ id, absolutePath: "irrelevant",