From e3849bf1a6b2f5bf9eb030088e2262b7b1bda977 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Wed, 20 Jul 2022 10:26:03 -0400 Subject: [PATCH] Fix rebase issues Signed-off-by: Sebastian Malton --- ...installing-helm-chart-from-new-tab.test.ts | 80 +++++++++---------- ...m-chart-from-previously-opened-tab.test.ts | 27 +++---- ...dock-tab-for-installing-helm-chart.test.ts | 25 +++--- ...eadme-of-selected-helm-chart.injectable.ts | 2 +- .../call-for-helm-chart-readme.injectable.ts | 18 ++--- ...sions-of-selected-helm-chart.injectable.ts | 2 +- ...call-for-helm-chart-versions.injectable.ts | 17 ++-- ...rt-details-version-selection.injectable.ts | 2 +- .../call-for-helm-charts.injectable.ts | 17 ---- .../helm-charts/helm-charts.injectable.ts | 6 +- ...call-for-create-helm-release.injectable.ts | 19 ----- .../call-for-helm-chart-values.injectable.ts | 20 ----- .../install-chart-model.injectable.tsx | 16 ++-- .../dock/install-chart/store.injectable.ts | 4 - 14 files changed, 96 insertions(+), 159 deletions(-) delete mode 100644 src/renderer/components/+helm-charts/helm-charts/call-for-helm-charts.injectable.ts delete mode 100644 src/renderer/components/+helm-releases/create-release/call-for-create-helm-release.injectable.ts delete mode 100644 src/renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable.ts diff --git a/src/behaviours/helm-charts/installing-chart/installing-helm-chart-from-new-tab.test.ts b/src/behaviours/helm-charts/installing-chart/installing-helm-chart-from-new-tab.test.ts index f3ee91257d..b4ccd5644a 100644 --- a/src/behaviours/helm-charts/installing-chart/installing-helm-chart-from-new-tab.test.ts +++ b/src/behaviours/helm-charts/installing-chart/installing-helm-chart-from-new-tab.test.ts @@ -8,14 +8,7 @@ import type { RenderResult } from "@testing-library/react"; import { fireEvent } from "@testing-library/react"; import type { ApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder"; -import type { CallForHelmCharts } from "../../../renderer/components/+helm-charts/helm-charts/call-for-helm-charts.injectable"; -import callForHelmChartsInjectable from "../../../renderer/components/+helm-charts/helm-charts/call-for-helm-charts.injectable"; -import { HelmChart } from "../../../common/k8s-api/endpoints/helm-charts.api"; import getRandomInstallChartTabIdInjectable from "../../../renderer/components/dock/install-chart/get-random-install-chart-tab-id.injectable"; -import type { CallForHelmChartValues } from "../../../renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable"; -import callForHelmChartValuesInjectable from "../../../renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable"; -import type { CallForCreateHelmRelease } from "../../../renderer/components/+helm-releases/create-release/call-for-create-helm-release.injectable"; -import callForCreateHelmReleaseInjectable from "../../../renderer/components/+helm-releases/create-release/call-for-create-helm-release.injectable"; import currentPathInjectable from "../../../renderer/routes/current-path.injectable"; import namespaceStoreInjectable from "../../../renderer/components/+namespaces/store.injectable"; import type { NamespaceStore } from "../../../renderer/components/+namespaces/store"; @@ -30,6 +23,13 @@ import hostedClusterIdInjectable from "../../../renderer/cluster-frame-context/h import dockStoreInjectable from "../../../renderer/components/dock/dock/store.injectable"; import readJsonFileInjectable from "../../../common/fs/read-json-file.injectable"; import type { DiContainer } from "@ogre-tools/injectable"; +import { HelmChart } from "../../../renderer/k8s/helm-chart"; +import type { ListHelmCharts } from "../../../renderer/k8s/helm-charts.api/list.injectable"; +import listHelmChartsInjectable from "../../../renderer/k8s/helm-charts.api/list.injectable"; +import type { GetHelmChartValues } from "../../../renderer/k8s/helm-charts.api/get-values.injectable"; +import type { CreateHelmRelease } from "../../../renderer/k8s/helm-releases.api/create.injectable"; +import getHelmChartValuesInjectable from "../../../renderer/k8s/helm-charts.api/get-values.injectable"; +import createHelmReleaseInjectable from "../../../renderer/k8s/helm-releases.api/create.injectable"; // TODO: Make tooltips free of side effects by making it deterministic jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({ @@ -39,11 +39,11 @@ jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({ describe("installing helm chart from new tab", () => { let builder: ApplicationBuilder; let rendererDi: DiContainer; - let callForHelmChartsMock: AsyncFnMock; + let listHelmChartsMock: AsyncFnMock; let callForHelmChartVersionsMock: AsyncFnMock; let callForHelmChartReadmeMock: AsyncFnMock; - let callForHelmChartValuesMock: AsyncFnMock; - let callForCreateHelmReleaseMock: AsyncFnMock; + let getHelmChartValuesMock: AsyncFnMock; + let createHelmReleaseMock: AsyncFnMock; beforeEach(() => { builder = getApplicationBuilder(); @@ -52,11 +52,11 @@ describe("installing helm chart from new tab", () => { overrideFsWithFakes(rendererDi); - callForHelmChartsMock = asyncFn(); + listHelmChartsMock = asyncFn(); callForHelmChartVersionsMock = asyncFn(); callForHelmChartReadmeMock = asyncFn(); - callForHelmChartValuesMock = asyncFn(); - callForCreateHelmReleaseMock = asyncFn(); + getHelmChartValuesMock = asyncFn(); + createHelmReleaseMock = asyncFn(); builder.beforeApplicationStart(({ rendererDi }) => { rendererDi.override( @@ -67,8 +67,8 @@ describe("installing helm chart from new tab", () => { rendererDi.override(hostedClusterIdInjectable, () => "some-cluster-id"); rendererDi.override( - callForHelmChartsInjectable, - () => callForHelmChartsMock, + listHelmChartsInjectable, + () => listHelmChartsMock, ); rendererDi.override( @@ -82,13 +82,13 @@ describe("installing helm chart from new tab", () => { ); rendererDi.override( - callForHelmChartValuesInjectable, - () => callForHelmChartValuesMock, + getHelmChartValuesInjectable, + () => getHelmChartValuesMock, ); rendererDi.override( - callForCreateHelmReleaseInjectable, - () => callForCreateHelmReleaseMock, + createHelmReleaseInjectable, + () => createHelmReleaseMock, ); // TODO: Replace store mocking with mock for the actual side-effect (where the namespaces are coming from) @@ -145,7 +145,7 @@ describe("installing helm chart from new tab", () => { // TODO: Make TerminalWindow unit testable to allow realistic behaviour dockStore.closeTab("terminal"); - await callForHelmChartsMock.resolve([ + await listHelmChartsMock.resolve([ HelmChart.create({ apiVersion: "some-api-version", name: "some-name", @@ -242,7 +242,7 @@ describe("installing helm chart from new tab", () => { }); it("calls for default configuration of the chart", () => { - expect(callForHelmChartValuesMock).toHaveBeenCalledWith( + expect(getHelmChartValuesMock).toHaveBeenCalledWith( "some-repository", "some-name", "some-version", @@ -263,7 +263,7 @@ describe("installing helm chart from new tab", () => { }); it("given default configuration resolves but versions have not resolved yet, still shows the spinner", async () => { - await callForHelmChartValuesMock.resolve( + await getHelmChartValuesMock.resolve( "some-default-configuration", ); @@ -282,7 +282,7 @@ describe("installing helm chart from new tab", () => { describe("when default configuration and versions resolve", () => { beforeEach(async () => { - await callForHelmChartValuesMock.resolve( + await getHelmChartValuesMock.resolve( "some-default-configuration", ); @@ -379,7 +379,7 @@ describe("installing helm chart from new tab", () => { }); it("calls for installation with default configuration", () => { - expect(callForCreateHelmReleaseMock).toHaveBeenCalledWith({ + expect(createHelmReleaseMock).toHaveBeenCalledWith({ chart: "some-name", name: undefined, namespace: "default", @@ -391,7 +391,7 @@ describe("installing helm chart from new tab", () => { describe("when installation resolves", () => { beforeEach(async () => { - await callForCreateHelmReleaseMock.resolve({ + await createHelmReleaseMock.resolve({ log: "some-execution-output", release: { @@ -554,7 +554,7 @@ describe("installing helm chart from new tab", () => { }); it("calls for default configuration of the second chart", () => { - expect(callForHelmChartValuesMock).toHaveBeenCalledWith( + expect(getHelmChartValuesMock).toHaveBeenCalledWith( "some-repository", "some-other-name", "some-version", @@ -576,7 +576,7 @@ describe("installing helm chart from new tab", () => { describe("when configuration and versions resolve", () => { beforeEach(async () => { - await callForHelmChartValuesMock.resolve( + await getHelmChartValuesMock.resolve( "some-other-default-configuration", ); @@ -601,7 +601,7 @@ describe("installing helm chart from new tab", () => { fireEvent.click(installButton); expect( - callForCreateHelmReleaseMock, + createHelmReleaseMock, ).toHaveBeenCalledWith({ chart: "some-other-name", name: undefined, @@ -614,7 +614,7 @@ describe("installing helm chart from new tab", () => { describe("when selecting the dock tab for installing first chart", () => { beforeEach(() => { - callForHelmChartValuesMock.mockClear(); + getHelmChartValuesMock.mockClear(); callForHelmChartVersionsMock.mockClear(); const tab = rendered.getByTestId( @@ -630,7 +630,7 @@ describe("installing helm chart from new tab", () => { it("does not call for default configuration", () => { expect( - callForHelmChartValuesMock, + getHelmChartValuesMock, ).not.toHaveBeenCalled(); }); @@ -654,7 +654,7 @@ describe("installing helm chart from new tab", () => { fireEvent.click(installButton); expect( - callForCreateHelmReleaseMock, + createHelmReleaseMock, ).toHaveBeenCalledWith({ chart: "some-name", name: undefined, @@ -674,7 +674,7 @@ describe("installing helm chart from new tab", () => { beforeEach(() => { callForHelmChartVersionsMock.mockClear(); - callForHelmChartValuesMock.mockClear(); + getHelmChartValuesMock.mockClear(); const menuId = "install-chart-version-select-for-some-first-tab-id"; @@ -702,7 +702,7 @@ describe("installing helm chart from new tab", () => { }); it("calls for default configuration for the version of chart", () => { - expect(callForHelmChartValuesMock).toHaveBeenCalledWith( + expect(getHelmChartValuesMock).toHaveBeenCalledWith( "some-repository", "some-name", "some-other-version", @@ -741,7 +741,7 @@ describe("installing helm chart from new tab", () => { describe("when default configuration resolves", () => { beforeEach(async () => { - await callForHelmChartValuesMock.resolve( + await getHelmChartValuesMock.resolve( "some-default-configuration-for-other-version", ); }); @@ -766,7 +766,7 @@ describe("installing helm chart from new tab", () => { fireEvent.click(installButton); expect( - callForCreateHelmReleaseMock, + createHelmReleaseMock, ).toHaveBeenCalledWith({ chart: "some-name", name: undefined, @@ -823,7 +823,7 @@ describe("installing helm chart from new tab", () => { fireEvent.click(installButton); - expect(callForCreateHelmReleaseMock).toHaveBeenCalledWith( + expect(createHelmReleaseMock).toHaveBeenCalledWith( { chart: "some-name", name: undefined, @@ -886,7 +886,7 @@ describe("installing helm chart from new tab", () => { ) .selectOption("some-other-version"); - await callForHelmChartValuesMock.resolve( + await getHelmChartValuesMock.resolve( "some-default-configuration-for-other-version", ); @@ -942,7 +942,7 @@ describe("installing helm chart from new tab", () => { fireEvent.click(installButton); - expect(callForCreateHelmReleaseMock).toHaveBeenCalledWith({ + expect(createHelmReleaseMock).toHaveBeenCalledWith({ chart: "some-name", name: undefined, namespace: "default", @@ -959,7 +959,7 @@ describe("installing helm chart from new tab", () => { ) .selectOption("some-other-version"); - await callForHelmChartValuesMock.resolve( + await getHelmChartValuesMock.resolve( "some-default-configuration-for-other-version", ); @@ -1008,7 +1008,7 @@ describe("installing helm chart from new tab", () => { fireEvent.click(installButton); - expect(callForCreateHelmReleaseMock).toHaveBeenCalledWith({ + expect(createHelmReleaseMock).toHaveBeenCalledWith({ chart: "some-name", name: "some-custom-name", namespace: "default", diff --git a/src/behaviours/helm-charts/installing-chart/installing-helm-chart-from-previously-opened-tab.test.ts b/src/behaviours/helm-charts/installing-chart/installing-helm-chart-from-previously-opened-tab.test.ts index 1fdde9130c..c350aeff4d 100644 --- a/src/behaviours/helm-charts/installing-chart/installing-helm-chart-from-previously-opened-tab.test.ts +++ b/src/behaviours/helm-charts/installing-chart/installing-helm-chart-from-previously-opened-tab.test.ts @@ -7,10 +7,8 @@ import asyncFn from "@async-fn/jest"; import type { RenderResult } from "@testing-library/react"; import type { ApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder"; -import { HelmChart } from "../../../common/k8s-api/endpoints/helm-charts.api"; +import { HelmChart } from "../../../renderer/k8s/helm-chart"; import getRandomInstallChartTabIdInjectable from "../../../renderer/components/dock/install-chart/get-random-install-chart-tab-id.injectable"; -import type { CallForHelmChartValues } from "../../../renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable"; -import callForHelmChartValuesInjectable from "../../../renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable"; import namespaceStoreInjectable from "../../../renderer/components/+namespaces/store.injectable"; import type { NamespaceStore } from "../../../renderer/components/+namespaces/store"; import type { CallForHelmChartVersions } from "../../../renderer/components/+helm-charts/details/versions/call-for-helm-chart-versions.injectable"; @@ -22,7 +20,9 @@ import hostedClusterIdInjectable from "../../../renderer/cluster-frame-context/h import { TabKind } from "../../../renderer/components/dock/dock/store"; import { controlWhenStoragesAreReady } from "../../../renderer/utils/create-storage/storages-are-ready"; import type { DiContainer } from "@ogre-tools/injectable"; -import callForCreateHelmReleaseInjectable from "../../../renderer/components/+helm-releases/create-release/call-for-create-helm-release.injectable"; +import type { GetHelmChartValues } from "../../../renderer/k8s/helm-charts.api/get-values.injectable"; +import getHelmChartValuesInjectable from "../../../renderer/k8s/helm-charts.api/get-values.injectable"; +import createHelmReleaseInjectable from "../../../renderer/k8s/helm-releases.api/create.injectable"; // TODO: Make tooltips free of side effects by making it deterministic jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({ @@ -33,7 +33,7 @@ describe("installing helm chart from previously opened tab", () => { let builder: ApplicationBuilder; let rendererDi: DiContainer; let callForHelmChartVersionsMock: AsyncFnMock; - let callForHelmChartValuesMock: AsyncFnMock; + let getHelmChartValuesMock: AsyncFnMock; let storagesAreReady: () => Promise; beforeEach(() => { @@ -44,7 +44,7 @@ describe("installing helm chart from previously opened tab", () => { overrideFsWithFakes(rendererDi); callForHelmChartVersionsMock = asyncFn(); - callForHelmChartValuesMock = asyncFn(); + getHelmChartValuesMock = asyncFn(); builder.beforeApplicationStart(({ rendererDi }) => { rendererDi.override( @@ -62,17 +62,12 @@ describe("installing helm chart from previously opened tab", () => { ); rendererDi.override( - callForHelmChartValuesInjectable, - () => callForHelmChartValuesMock, + getHelmChartValuesInjectable, + () => getHelmChartValuesMock, ); rendererDi.override( - callForHelmChartValuesInjectable, - () => callForHelmChartValuesMock, - ); - - rendererDi.override( - callForCreateHelmReleaseInjectable, + createHelmReleaseInjectable, () => jest.fn(), ); @@ -164,7 +159,7 @@ describe("installing helm chart from previously opened tab", () => { }); it("calls for default configuration of the chart", () => { - expect(callForHelmChartValuesMock).toHaveBeenCalledWith( + expect(getHelmChartValuesMock).toHaveBeenCalledWith( "some-repository", "some-name", "some-other-version", @@ -180,7 +175,7 @@ describe("installing helm chart from previously opened tab", () => { describe("when configuration and version resolves", () => { beforeEach(async () => { - await callForHelmChartValuesMock.resolve( + await getHelmChartValuesMock.resolve( "some-default-configuration", ); diff --git a/src/behaviours/helm-charts/installing-chart/opening-dock-tab-for-installing-helm-chart.test.ts b/src/behaviours/helm-charts/installing-chart/opening-dock-tab-for-installing-helm-chart.test.ts index 79ad98a1dc..e47f1697c4 100644 --- a/src/behaviours/helm-charts/installing-chart/opening-dock-tab-for-installing-helm-chart.test.ts +++ b/src/behaviours/helm-charts/installing-chart/opening-dock-tab-for-installing-helm-chart.test.ts @@ -8,12 +8,8 @@ import type { RenderResult } from "@testing-library/react"; import { fireEvent } from "@testing-library/react"; import type { ApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder"; -import type { CallForHelmCharts } from "../../../renderer/components/+helm-charts/helm-charts/call-for-helm-charts.injectable"; -import callForHelmChartsInjectable from "../../../renderer/components/+helm-charts/helm-charts/call-for-helm-charts.injectable"; -import { HelmChart } from "../../../common/k8s-api/endpoints/helm-charts.api"; +import { HelmChart } from "../../../renderer/k8s/helm-chart"; import getRandomInstallChartTabIdInjectable from "../../../renderer/components/dock/install-chart/get-random-install-chart-tab-id.injectable"; -import callForHelmChartValuesInjectable from "../../../renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable"; -import callForCreateHelmReleaseInjectable from "../../../renderer/components/+helm-releases/create-release/call-for-create-helm-release.injectable"; import type { CallForHelmChartReadme } from "../../../renderer/components/+helm-charts/details/readme/call-for-helm-chart-readme.injectable"; import callForHelmChartReadmeInjectable from "../../../renderer/components/+helm-charts/details/readme/call-for-helm-chart-readme.injectable"; import type { CallForHelmChartVersions } from "../../../renderer/components/+helm-charts/details/versions/call-for-helm-chart-versions.injectable"; @@ -24,6 +20,9 @@ import directoryForLensLocalStorageInjectable from "../../../common/directory-fo import hostedClusterIdInjectable from "../../../renderer/cluster-frame-context/hosted-cluster-id.injectable"; import dockStoreInjectable from "../../../renderer/components/dock/dock/store.injectable"; import type { DiContainer } from "@ogre-tools/injectable"; +import type { ListHelmCharts } from "../../../renderer/k8s/helm-charts.api/list.injectable"; +import listHelmChartsInjectable from "../../../renderer/k8s/helm-charts.api/list.injectable"; +import createHelmReleaseInjectable from "../../../renderer/k8s/helm-releases.api/create.injectable"; // TODO: Make tooltips free of side effects by making it deterministic jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({ @@ -33,7 +32,7 @@ jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({ describe("opening dock tab for installing helm chart", () => { let builder: ApplicationBuilder; let rendererDi: DiContainer; - let callForHelmChartsMock: AsyncFnMock; + let listHelmChartsMock: AsyncFnMock; let callForHelmChartVersionsMock: AsyncFnMock; let callForHelmChartReadmeMock: AsyncFnMock; let callForHelmChartValuesMock: jest.Mock; @@ -45,7 +44,7 @@ describe("opening dock tab for installing helm chart", () => { overrideFsWithFakes(rendererDi); - callForHelmChartsMock = asyncFn(); + listHelmChartsMock = asyncFn(); callForHelmChartVersionsMock = asyncFn(); callForHelmChartReadmeMock = asyncFn(); callForHelmChartValuesMock = jest.fn(); @@ -59,8 +58,8 @@ describe("opening dock tab for installing helm chart", () => { rendererDi.override(hostedClusterIdInjectable, () => "some-cluster-id"); rendererDi.override( - callForHelmChartsInjectable, - () => callForHelmChartsMock, + listHelmChartsInjectable, + () => listHelmChartsMock, ); rendererDi.override( @@ -74,12 +73,12 @@ describe("opening dock tab for installing helm chart", () => { ); rendererDi.override( - callForHelmChartValuesInjectable, + callForHelmChartVersionsInjectable, () => callForHelmChartValuesMock, ); rendererDi.override( - callForCreateHelmReleaseInjectable, + createHelmReleaseInjectable, () => jest.fn(), ); @@ -112,12 +111,12 @@ describe("opening dock tab for installing helm chart", () => { }); it("calls for charts", () => { - expect(callForHelmChartsMock).toHaveBeenCalled(); + expect(listHelmChartsMock).toHaveBeenCalled(); }); describe("when charts resolve", () => { beforeEach(async () => { - await callForHelmChartsMock.resolve([ + await listHelmChartsMock.resolve([ HelmChart.create({ apiVersion: "some-api-version", name: "some-name", diff --git a/src/renderer/components/+helm-charts/details/readme-of-selected-helm-chart.injectable.ts b/src/renderer/components/+helm-charts/details/readme-of-selected-helm-chart.injectable.ts index 21e8bcf7a9..86d0d9ab7d 100644 --- a/src/renderer/components/+helm-charts/details/readme-of-selected-helm-chart.injectable.ts +++ b/src/renderer/components/+helm-charts/details/readme-of-selected-helm-chart.injectable.ts @@ -6,7 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { asyncComputed } from "@ogre-tools/injectable-react"; import callForHelmChartReadmeInjectable from "./readme/call-for-helm-chart-readme.injectable"; import helmChartDetailsVersionSelectionInjectable from "./versions/helm-chart-details-version-selection.injectable"; -import type { HelmChart } from "../../../../common/k8s-api/endpoints/helm-charts.api"; +import type { HelmChart } from "../../../../renderer/k8s/helm-chart"; const readmeOfSelectedHelmChartInjectable = getInjectable({ id: "readme-of-selected-helm-chart", diff --git a/src/renderer/components/+helm-charts/details/readme/call-for-helm-chart-readme.injectable.ts b/src/renderer/components/+helm-charts/details/readme/call-for-helm-chart-readme.injectable.ts index ae9c99edeb..043efde3f7 100644 --- a/src/renderer/components/+helm-charts/details/readme/call-for-helm-chart-readme.injectable.ts +++ b/src/renderer/components/+helm-charts/details/readme/call-for-helm-chart-readme.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { getChartDetails } from "../../../../../common/k8s-api/endpoints/helm-charts.api"; +import getHelmChartDetailsInjectable from "../../../../k8s/helm-charts.api/get-details.injectable"; export type CallForHelmChartReadme = ( repo: string, @@ -13,16 +13,16 @@ export type CallForHelmChartReadme = ( const callForHelmChartReadmeInjectable = getInjectable({ id: "call-for-helm-chart-readme", + instantiate: (di): CallForHelmChartReadme => { + const getHelmChartDetails = di.inject(getHelmChartDetailsInjectable); - instantiate: - (): CallForHelmChartReadme => - async (repository: string, name: string, version: string) => { - // TODO: Dismantle wrong abstraction - const details = await getChartDetails(repository, name, { version }); - - return details.readme; - }, + return async (repository, name, version) => { + // TODO: Dismantle wrong abstraction + const details = await getHelmChartDetails(repository, name, { version }); + return details.readme; + }; + }, causesSideEffects: true, }); diff --git a/src/renderer/components/+helm-charts/details/versions-of-selected-helm-chart.injectable.ts b/src/renderer/components/+helm-charts/details/versions-of-selected-helm-chart.injectable.ts index 14ea00fce2..3b362bac69 100644 --- a/src/renderer/components/+helm-charts/details/versions-of-selected-helm-chart.injectable.ts +++ b/src/renderer/components/+helm-charts/details/versions-of-selected-helm-chart.injectable.ts @@ -5,7 +5,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { asyncComputed } from "@ogre-tools/injectable-react"; import callForHelmChartVersionsInjectable from "./versions/call-for-helm-chart-versions.injectable"; -import type { HelmChart } from "../../../../common/k8s-api/endpoints/helm-charts.api"; +import type { HelmChart } from "../../../../renderer/k8s/helm-chart"; const versionsOfSelectedHelmChartInjectable = getInjectable({ id: "versions-of-selected-helm-chart", diff --git a/src/renderer/components/+helm-charts/details/versions/call-for-helm-chart-versions.injectable.ts b/src/renderer/components/+helm-charts/details/versions/call-for-helm-chart-versions.injectable.ts index a20f5b60e9..5f7b0e9eca 100644 --- a/src/renderer/components/+helm-charts/details/versions/call-for-helm-chart-versions.injectable.ts +++ b/src/renderer/components/+helm-charts/details/versions/call-for-helm-chart-versions.injectable.ts @@ -3,8 +3,8 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import type { HelmChart } from "../../../../../common/k8s-api/endpoints/helm-charts.api"; -import { getChartDetails } from "../../../../../common/k8s-api/endpoints/helm-charts.api"; +import type { HelmChart } from "../../../../../renderer/k8s/helm-chart"; +import getHelmChartDetailsInjectable from "../../../../k8s/helm-charts.api/get-details.injectable"; export type CallForHelmChartVersions = ( repo: string, @@ -14,13 +14,16 @@ export type CallForHelmChartVersions = ( const callForHelmChartVersionsInjectable = getInjectable({ id: "call-for-helm-chart-versions", - instantiate: - (): CallForHelmChartVersions => async (repository: string, name: string) => { - // TODO: Dismantle wrong abstraction - const details = await getChartDetails(repository, name); + instantiate: (di): CallForHelmChartVersions => { + const getHelmChartDetails = di.inject(getHelmChartDetailsInjectable); + + return async (repository, name) => { + // TODO: Dismantle wrong abstraction + const details = await getHelmChartDetails(repository, name); return details.versions; - }, + }; + }, causesSideEffects: true, }); diff --git a/src/renderer/components/+helm-charts/details/versions/helm-chart-details-version-selection.injectable.ts b/src/renderer/components/+helm-charts/details/versions/helm-chart-details-version-selection.injectable.ts index b3be751b00..b02e71cfb0 100644 --- a/src/renderer/components/+helm-charts/details/versions/helm-chart-details-version-selection.injectable.ts +++ b/src/renderer/components/+helm-charts/details/versions/helm-chart-details-version-selection.injectable.ts @@ -6,7 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import type { IComputedValue } from "mobx"; import { computed, observable } from "mobx"; import versionsOfSelectedHelmChartInjectable from "../versions-of-selected-helm-chart.injectable"; -import type { HelmChart } from "../../../../../common/k8s-api/endpoints/helm-charts.api"; +import type { HelmChart } from "../../../../../renderer/k8s/helm-chart"; import type { SingleValue } from "react-select"; interface VersionSelectionOption { diff --git a/src/renderer/components/+helm-charts/helm-charts/call-for-helm-charts.injectable.ts b/src/renderer/components/+helm-charts/helm-charts/call-for-helm-charts.injectable.ts deleted file mode 100644 index 5edc0d7bea..0000000000 --- a/src/renderer/components/+helm-charts/helm-charts/call-for-helm-charts.injectable.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * 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 { HelmChart } from "../../../../common/k8s-api/endpoints/helm-charts.api"; -import { listCharts } from "../../../../common/k8s-api/endpoints/helm-charts.api"; - -export type CallForHelmCharts = () => Promise; - -const callForHelmChartsInjectable = getInjectable({ - id: "call-for-helm-charts", - instantiate: (): CallForHelmCharts => async () => await listCharts(), - causesSideEffects: true, -}); - -export default callForHelmChartsInjectable; diff --git a/src/renderer/components/+helm-charts/helm-charts/helm-charts.injectable.ts b/src/renderer/components/+helm-charts/helm-charts/helm-charts.injectable.ts index 1324e382a9..ba2beeab35 100644 --- a/src/renderer/components/+helm-charts/helm-charts/helm-charts.injectable.ts +++ b/src/renderer/components/+helm-charts/helm-charts/helm-charts.injectable.ts @@ -4,15 +4,15 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { asyncComputed } from "@ogre-tools/injectable-react"; -import callForHelmChartsInjectable from "./call-for-helm-charts.injectable"; +import listHelmChartsInjectable from "../../../k8s/helm-charts.api/list.injectable"; const helmChartsInjectable = getInjectable({ id: "helm-charts", instantiate: (di) => { - const callForHelmCharts = di.inject(callForHelmChartsInjectable); + const listHelmCharts = di.inject(listHelmChartsInjectable); - return asyncComputed(async () => await callForHelmCharts(), []); + return asyncComputed(async () => await listHelmCharts(), []); }, }); diff --git a/src/renderer/components/+helm-releases/create-release/call-for-create-helm-release.injectable.ts b/src/renderer/components/+helm-releases/create-release/call-for-create-helm-release.injectable.ts deleted file mode 100644 index d5506b486e..0000000000 --- a/src/renderer/components/+helm-releases/create-release/call-for-create-helm-release.injectable.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * 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 { HelmReleaseCreatePayload, HelmReleaseUpdateDetails } from "../../../../common/k8s-api/endpoints/helm-releases.api"; -import { createRelease } from "../../../../common/k8s-api/endpoints/helm-releases.api"; - -export type CallForCreateHelmRelease = ( - payload: HelmReleaseCreatePayload -) => Promise; - -const callForCreateHelmReleaseInjectable = getInjectable({ - id: "call-for-create-helm-release", - instantiate: (): CallForCreateHelmRelease => createRelease, - causesSideEffects: true, -}); - -export default callForCreateHelmReleaseInjectable; diff --git a/src/renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable.ts b/src/renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable.ts deleted file mode 100644 index 1c379b56e5..0000000000 --- a/src/renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 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 { getChartValues } from "../../../../../common/k8s-api/endpoints/helm-charts.api"; - -export type CallForHelmChartValues = ( - repo: string, - name: string, - version: string -) => Promise; - -const callForHelmChartValuesInjectable = getInjectable({ - id: "call-for-helm-chart-values", - instantiate: (): CallForHelmChartValues => getChartValues, - causesSideEffects: true, -}); - -export default callForHelmChartValuesInjectable; diff --git a/src/renderer/components/dock/install-chart/install-chart-model.injectable.tsx b/src/renderer/components/dock/install-chart/install-chart-model.injectable.tsx index 8a25cebe48..04482a10c2 100644 --- a/src/renderer/components/dock/install-chart/install-chart-model.injectable.tsx +++ b/src/renderer/components/dock/install-chart/install-chart-model.injectable.tsx @@ -5,8 +5,6 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import installChartTabStoreInjectable from "./store.injectable"; import { waitUntilDefined } from "../../../../common/utils"; -import type { CallForHelmChartValues } from "./chart-data/call-for-helm-chart-values.injectable"; -import callForHelmChartValuesInjectable from "./chart-data/call-for-helm-chart-values.injectable"; import type { IChartInstallData, InstallChartTabStore } from "./store"; import React from "react"; import { @@ -16,8 +14,6 @@ import { runInAction, } from "mobx"; import assert from "assert"; -import type { CallForCreateHelmRelease } from "../../+helm-releases/create-release/call-for-create-helm-release.injectable"; -import callForCreateHelmReleaseInjectable from "../../+helm-releases/create-release/call-for-create-helm-release.injectable"; import dockStoreInjectable from "../dock/store.injectable"; import type { NavigateToHelmReleases } from "../../../../common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable"; import navigateToHelmReleasesInjectable from "../../../../common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable"; @@ -26,15 +22,19 @@ import type { CallForHelmChartVersions } from "../../+helm-charts/details/versio import callForHelmChartVersionsInjectable from "../../+helm-charts/details/versions/call-for-helm-chart-versions.injectable"; import type { HelmChart } from "../../../k8s/helm-chart"; import type { HelmReleaseUpdateDetails } from "../../../k8s/helm-releases.api/update.injectable"; +import type { GetHelmChartValues } from "../../../k8s/helm-charts.api/get-values.injectable"; +import getHelmChartValuesInjectable from "../../../k8s/helm-charts.api/get-values.injectable"; +import type { CreateHelmRelease } from "../../../k8s/helm-releases.api/create.injectable"; +import createHelmReleaseInjectable from "../../../k8s/helm-releases.api/create.injectable"; const installChartModelInjectable = getInjectable({ id: "install-chart-model", instantiate: async (di, tabId: string) => { const store = di.inject(installChartTabStoreInjectable); - const callForHelmChartValues = di.inject(callForHelmChartValuesInjectable); + const callForHelmChartValues = di.inject(getHelmChartValuesInjectable); const callForHelmChartVersions = di.inject(callForHelmChartVersionsInjectable); - const callForCreateHelmRelease = di.inject(callForCreateHelmReleaseInjectable); + const callForCreateHelmRelease = di.inject(createHelmReleaseInjectable); const dockStore = di.inject(dockStoreInjectable); const navigateToHelmReleases = di.inject(navigateToHelmReleasesInjectable); const closeTab = () => dockStore.closeTab(tabId); @@ -71,8 +71,8 @@ interface Dependencies { closeTab: () => void; navigateToHelmReleases: NavigateToHelmReleases; waitForChart: () => Promise; - callForCreateHelmRelease: CallForCreateHelmRelease; - callForHelmChartValues: CallForHelmChartValues; + callForCreateHelmRelease: CreateHelmRelease; + callForHelmChartValues: GetHelmChartValues; callForHelmChartVersions: CallForHelmChartVersions; store: InstallChartTabStore; } diff --git a/src/renderer/components/dock/install-chart/store.injectable.ts b/src/renderer/components/dock/install-chart/store.injectable.ts index 8563be8598..d4eb40840f 100644 --- a/src/renderer/components/dock/install-chart/store.injectable.ts +++ b/src/renderer/components/dock/install-chart/store.injectable.ts @@ -7,8 +7,6 @@ import { InstallChartTabStore } from "./store"; import createDockTabStoreInjectable from "../dock-tab-store/create-dock-tab-store.injectable"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; import type { HelmReleaseUpdateDetails } from "../../../k8s/helm-releases.api/update.injectable"; -import getHelmChartDetailsInjectable from "../../../k8s/helm-charts.api/get-details.injectable"; -import getHelmChartValuesInjectable from "../../../k8s/helm-charts.api/get-values.injectable"; const installChartTabStoreInjectable = getInjectable({ id: "install-chart-tab-store", @@ -20,8 +18,6 @@ const installChartTabStoreInjectable = getInjectable({ createStorage: di.inject(createStorageInjectable), versionsStore: createDockTabStore(), detailsStore: createDockTabStore(), - getHelmChartDetails: di.inject(getHelmChartDetailsInjectable), - getHelmChartValues: di.inject(getHelmChartValuesInjectable), }); }, });