1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Fix rebase issues

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-07-20 10:26:03 -04:00
parent 1cd9625faa
commit e3849bf1a6
14 changed files with 96 additions and 159 deletions

View File

@ -8,14 +8,7 @@ import type { RenderResult } from "@testing-library/react";
import { fireEvent } from "@testing-library/react"; import { fireEvent } from "@testing-library/react";
import type { ApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder"; import type { ApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder";
import { getApplicationBuilder } 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 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 currentPathInjectable from "../../../renderer/routes/current-path.injectable";
import namespaceStoreInjectable from "../../../renderer/components/+namespaces/store.injectable"; import namespaceStoreInjectable from "../../../renderer/components/+namespaces/store.injectable";
import type { NamespaceStore } from "../../../renderer/components/+namespaces/store"; 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 dockStoreInjectable from "../../../renderer/components/dock/dock/store.injectable";
import readJsonFileInjectable from "../../../common/fs/read-json-file.injectable"; import readJsonFileInjectable from "../../../common/fs/read-json-file.injectable";
import type { DiContainer } from "@ogre-tools/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 // TODO: Make tooltips free of side effects by making it deterministic
jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({ jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({
@ -39,11 +39,11 @@ jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({
describe("installing helm chart from new tab", () => { describe("installing helm chart from new tab", () => {
let builder: ApplicationBuilder; let builder: ApplicationBuilder;
let rendererDi: DiContainer; let rendererDi: DiContainer;
let callForHelmChartsMock: AsyncFnMock<CallForHelmCharts>; let listHelmChartsMock: AsyncFnMock<ListHelmCharts>;
let callForHelmChartVersionsMock: AsyncFnMock<CallForHelmChartVersions>; let callForHelmChartVersionsMock: AsyncFnMock<CallForHelmChartVersions>;
let callForHelmChartReadmeMock: AsyncFnMock<CallForHelmChartReadme>; let callForHelmChartReadmeMock: AsyncFnMock<CallForHelmChartReadme>;
let callForHelmChartValuesMock: AsyncFnMock<CallForHelmChartValues>; let getHelmChartValuesMock: AsyncFnMock<GetHelmChartValues>;
let callForCreateHelmReleaseMock: AsyncFnMock<CallForCreateHelmRelease>; let createHelmReleaseMock: AsyncFnMock<CreateHelmRelease>;
beforeEach(() => { beforeEach(() => {
builder = getApplicationBuilder(); builder = getApplicationBuilder();
@ -52,11 +52,11 @@ describe("installing helm chart from new tab", () => {
overrideFsWithFakes(rendererDi); overrideFsWithFakes(rendererDi);
callForHelmChartsMock = asyncFn(); listHelmChartsMock = asyncFn();
callForHelmChartVersionsMock = asyncFn(); callForHelmChartVersionsMock = asyncFn();
callForHelmChartReadmeMock = asyncFn(); callForHelmChartReadmeMock = asyncFn();
callForHelmChartValuesMock = asyncFn(); getHelmChartValuesMock = asyncFn();
callForCreateHelmReleaseMock = asyncFn(); createHelmReleaseMock = asyncFn();
builder.beforeApplicationStart(({ rendererDi }) => { builder.beforeApplicationStart(({ rendererDi }) => {
rendererDi.override( rendererDi.override(
@ -67,8 +67,8 @@ describe("installing helm chart from new tab", () => {
rendererDi.override(hostedClusterIdInjectable, () => "some-cluster-id"); rendererDi.override(hostedClusterIdInjectable, () => "some-cluster-id");
rendererDi.override( rendererDi.override(
callForHelmChartsInjectable, listHelmChartsInjectable,
() => callForHelmChartsMock, () => listHelmChartsMock,
); );
rendererDi.override( rendererDi.override(
@ -82,13 +82,13 @@ describe("installing helm chart from new tab", () => {
); );
rendererDi.override( rendererDi.override(
callForHelmChartValuesInjectable, getHelmChartValuesInjectable,
() => callForHelmChartValuesMock, () => getHelmChartValuesMock,
); );
rendererDi.override( rendererDi.override(
callForCreateHelmReleaseInjectable, createHelmReleaseInjectable,
() => callForCreateHelmReleaseMock, () => createHelmReleaseMock,
); );
// TODO: Replace store mocking with mock for the actual side-effect (where the namespaces are coming from) // 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 // TODO: Make TerminalWindow unit testable to allow realistic behaviour
dockStore.closeTab("terminal"); dockStore.closeTab("terminal");
await callForHelmChartsMock.resolve([ await listHelmChartsMock.resolve([
HelmChart.create({ HelmChart.create({
apiVersion: "some-api-version", apiVersion: "some-api-version",
name: "some-name", name: "some-name",
@ -242,7 +242,7 @@ describe("installing helm chart from new tab", () => {
}); });
it("calls for default configuration of the chart", () => { it("calls for default configuration of the chart", () => {
expect(callForHelmChartValuesMock).toHaveBeenCalledWith( expect(getHelmChartValuesMock).toHaveBeenCalledWith(
"some-repository", "some-repository",
"some-name", "some-name",
"some-version", "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 () => { 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", "some-default-configuration",
); );
@ -282,7 +282,7 @@ describe("installing helm chart from new tab", () => {
describe("when default configuration and versions resolve", () => { describe("when default configuration and versions resolve", () => {
beforeEach(async () => { beforeEach(async () => {
await callForHelmChartValuesMock.resolve( await getHelmChartValuesMock.resolve(
"some-default-configuration", "some-default-configuration",
); );
@ -379,7 +379,7 @@ describe("installing helm chart from new tab", () => {
}); });
it("calls for installation with default configuration", () => { it("calls for installation with default configuration", () => {
expect(callForCreateHelmReleaseMock).toHaveBeenCalledWith({ expect(createHelmReleaseMock).toHaveBeenCalledWith({
chart: "some-name", chart: "some-name",
name: undefined, name: undefined,
namespace: "default", namespace: "default",
@ -391,7 +391,7 @@ describe("installing helm chart from new tab", () => {
describe("when installation resolves", () => { describe("when installation resolves", () => {
beforeEach(async () => { beforeEach(async () => {
await callForCreateHelmReleaseMock.resolve({ await createHelmReleaseMock.resolve({
log: "some-execution-output", log: "some-execution-output",
release: { release: {
@ -554,7 +554,7 @@ describe("installing helm chart from new tab", () => {
}); });
it("calls for default configuration of the second chart", () => { it("calls for default configuration of the second chart", () => {
expect(callForHelmChartValuesMock).toHaveBeenCalledWith( expect(getHelmChartValuesMock).toHaveBeenCalledWith(
"some-repository", "some-repository",
"some-other-name", "some-other-name",
"some-version", "some-version",
@ -576,7 +576,7 @@ describe("installing helm chart from new tab", () => {
describe("when configuration and versions resolve", () => { describe("when configuration and versions resolve", () => {
beforeEach(async () => { beforeEach(async () => {
await callForHelmChartValuesMock.resolve( await getHelmChartValuesMock.resolve(
"some-other-default-configuration", "some-other-default-configuration",
); );
@ -601,7 +601,7 @@ describe("installing helm chart from new tab", () => {
fireEvent.click(installButton); fireEvent.click(installButton);
expect( expect(
callForCreateHelmReleaseMock, createHelmReleaseMock,
).toHaveBeenCalledWith({ ).toHaveBeenCalledWith({
chart: "some-other-name", chart: "some-other-name",
name: undefined, name: undefined,
@ -614,7 +614,7 @@ describe("installing helm chart from new tab", () => {
describe("when selecting the dock tab for installing first chart", () => { describe("when selecting the dock tab for installing first chart", () => {
beforeEach(() => { beforeEach(() => {
callForHelmChartValuesMock.mockClear(); getHelmChartValuesMock.mockClear();
callForHelmChartVersionsMock.mockClear(); callForHelmChartVersionsMock.mockClear();
const tab = rendered.getByTestId( const tab = rendered.getByTestId(
@ -630,7 +630,7 @@ describe("installing helm chart from new tab", () => {
it("does not call for default configuration", () => { it("does not call for default configuration", () => {
expect( expect(
callForHelmChartValuesMock, getHelmChartValuesMock,
).not.toHaveBeenCalled(); ).not.toHaveBeenCalled();
}); });
@ -654,7 +654,7 @@ describe("installing helm chart from new tab", () => {
fireEvent.click(installButton); fireEvent.click(installButton);
expect( expect(
callForCreateHelmReleaseMock, createHelmReleaseMock,
).toHaveBeenCalledWith({ ).toHaveBeenCalledWith({
chart: "some-name", chart: "some-name",
name: undefined, name: undefined,
@ -674,7 +674,7 @@ describe("installing helm chart from new tab", () => {
beforeEach(() => { beforeEach(() => {
callForHelmChartVersionsMock.mockClear(); callForHelmChartVersionsMock.mockClear();
callForHelmChartValuesMock.mockClear(); getHelmChartValuesMock.mockClear();
const menuId = const menuId =
"install-chart-version-select-for-some-first-tab-id"; "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", () => { it("calls for default configuration for the version of chart", () => {
expect(callForHelmChartValuesMock).toHaveBeenCalledWith( expect(getHelmChartValuesMock).toHaveBeenCalledWith(
"some-repository", "some-repository",
"some-name", "some-name",
"some-other-version", "some-other-version",
@ -741,7 +741,7 @@ describe("installing helm chart from new tab", () => {
describe("when default configuration resolves", () => { describe("when default configuration resolves", () => {
beforeEach(async () => { beforeEach(async () => {
await callForHelmChartValuesMock.resolve( await getHelmChartValuesMock.resolve(
"some-default-configuration-for-other-version", "some-default-configuration-for-other-version",
); );
}); });
@ -766,7 +766,7 @@ describe("installing helm chart from new tab", () => {
fireEvent.click(installButton); fireEvent.click(installButton);
expect( expect(
callForCreateHelmReleaseMock, createHelmReleaseMock,
).toHaveBeenCalledWith({ ).toHaveBeenCalledWith({
chart: "some-name", chart: "some-name",
name: undefined, name: undefined,
@ -823,7 +823,7 @@ describe("installing helm chart from new tab", () => {
fireEvent.click(installButton); fireEvent.click(installButton);
expect(callForCreateHelmReleaseMock).toHaveBeenCalledWith( expect(createHelmReleaseMock).toHaveBeenCalledWith(
{ {
chart: "some-name", chart: "some-name",
name: undefined, name: undefined,
@ -886,7 +886,7 @@ describe("installing helm chart from new tab", () => {
) )
.selectOption("some-other-version"); .selectOption("some-other-version");
await callForHelmChartValuesMock.resolve( await getHelmChartValuesMock.resolve(
"some-default-configuration-for-other-version", "some-default-configuration-for-other-version",
); );
@ -942,7 +942,7 @@ describe("installing helm chart from new tab", () => {
fireEvent.click(installButton); fireEvent.click(installButton);
expect(callForCreateHelmReleaseMock).toHaveBeenCalledWith({ expect(createHelmReleaseMock).toHaveBeenCalledWith({
chart: "some-name", chart: "some-name",
name: undefined, name: undefined,
namespace: "default", namespace: "default",
@ -959,7 +959,7 @@ describe("installing helm chart from new tab", () => {
) )
.selectOption("some-other-version"); .selectOption("some-other-version");
await callForHelmChartValuesMock.resolve( await getHelmChartValuesMock.resolve(
"some-default-configuration-for-other-version", "some-default-configuration-for-other-version",
); );
@ -1008,7 +1008,7 @@ describe("installing helm chart from new tab", () => {
fireEvent.click(installButton); fireEvent.click(installButton);
expect(callForCreateHelmReleaseMock).toHaveBeenCalledWith({ expect(createHelmReleaseMock).toHaveBeenCalledWith({
chart: "some-name", chart: "some-name",
name: "some-custom-name", name: "some-custom-name",
namespace: "default", namespace: "default",

View File

@ -7,10 +7,8 @@ import asyncFn from "@async-fn/jest";
import type { RenderResult } from "@testing-library/react"; import type { RenderResult } from "@testing-library/react";
import type { ApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder"; import type { ApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder";
import { getApplicationBuilder } 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 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 namespaceStoreInjectable from "../../../renderer/components/+namespaces/store.injectable";
import type { NamespaceStore } from "../../../renderer/components/+namespaces/store"; import type { NamespaceStore } from "../../../renderer/components/+namespaces/store";
import type { CallForHelmChartVersions } from "../../../renderer/components/+helm-charts/details/versions/call-for-helm-chart-versions.injectable"; 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 { TabKind } from "../../../renderer/components/dock/dock/store";
import { controlWhenStoragesAreReady } from "../../../renderer/utils/create-storage/storages-are-ready"; import { controlWhenStoragesAreReady } from "../../../renderer/utils/create-storage/storages-are-ready";
import type { DiContainer } from "@ogre-tools/injectable"; 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 // TODO: Make tooltips free of side effects by making it deterministic
jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({ jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({
@ -33,7 +33,7 @@ describe("installing helm chart from previously opened tab", () => {
let builder: ApplicationBuilder; let builder: ApplicationBuilder;
let rendererDi: DiContainer; let rendererDi: DiContainer;
let callForHelmChartVersionsMock: AsyncFnMock<CallForHelmChartVersions>; let callForHelmChartVersionsMock: AsyncFnMock<CallForHelmChartVersions>;
let callForHelmChartValuesMock: AsyncFnMock<CallForHelmChartValues>; let getHelmChartValuesMock: AsyncFnMock<GetHelmChartValues>;
let storagesAreReady: () => Promise<void>; let storagesAreReady: () => Promise<void>;
beforeEach(() => { beforeEach(() => {
@ -44,7 +44,7 @@ describe("installing helm chart from previously opened tab", () => {
overrideFsWithFakes(rendererDi); overrideFsWithFakes(rendererDi);
callForHelmChartVersionsMock = asyncFn(); callForHelmChartVersionsMock = asyncFn();
callForHelmChartValuesMock = asyncFn(); getHelmChartValuesMock = asyncFn();
builder.beforeApplicationStart(({ rendererDi }) => { builder.beforeApplicationStart(({ rendererDi }) => {
rendererDi.override( rendererDi.override(
@ -62,17 +62,12 @@ describe("installing helm chart from previously opened tab", () => {
); );
rendererDi.override( rendererDi.override(
callForHelmChartValuesInjectable, getHelmChartValuesInjectable,
() => callForHelmChartValuesMock, () => getHelmChartValuesMock,
); );
rendererDi.override( rendererDi.override(
callForHelmChartValuesInjectable, createHelmReleaseInjectable,
() => callForHelmChartValuesMock,
);
rendererDi.override(
callForCreateHelmReleaseInjectable,
() => jest.fn(), () => jest.fn(),
); );
@ -164,7 +159,7 @@ describe("installing helm chart from previously opened tab", () => {
}); });
it("calls for default configuration of the chart", () => { it("calls for default configuration of the chart", () => {
expect(callForHelmChartValuesMock).toHaveBeenCalledWith( expect(getHelmChartValuesMock).toHaveBeenCalledWith(
"some-repository", "some-repository",
"some-name", "some-name",
"some-other-version", "some-other-version",
@ -180,7 +175,7 @@ describe("installing helm chart from previously opened tab", () => {
describe("when configuration and version resolves", () => { describe("when configuration and version resolves", () => {
beforeEach(async () => { beforeEach(async () => {
await callForHelmChartValuesMock.resolve( await getHelmChartValuesMock.resolve(
"some-default-configuration", "some-default-configuration",
); );

View File

@ -8,12 +8,8 @@ import type { RenderResult } from "@testing-library/react";
import { fireEvent } from "@testing-library/react"; import { fireEvent } from "@testing-library/react";
import type { ApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder"; import type { ApplicationBuilder } from "../../../renderer/components/test-utils/get-application-builder";
import { getApplicationBuilder } 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 { HelmChart } from "../../../renderer/k8s/helm-chart";
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 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 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 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"; 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 hostedClusterIdInjectable from "../../../renderer/cluster-frame-context/hosted-cluster-id.injectable";
import dockStoreInjectable from "../../../renderer/components/dock/dock/store.injectable"; import dockStoreInjectable from "../../../renderer/components/dock/dock/store.injectable";
import type { DiContainer } from "@ogre-tools/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 // TODO: Make tooltips free of side effects by making it deterministic
jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({ jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({
@ -33,7 +32,7 @@ jest.mock("../../../renderer/components/tooltip/withTooltip", () => ({
describe("opening dock tab for installing helm chart", () => { describe("opening dock tab for installing helm chart", () => {
let builder: ApplicationBuilder; let builder: ApplicationBuilder;
let rendererDi: DiContainer; let rendererDi: DiContainer;
let callForHelmChartsMock: AsyncFnMock<CallForHelmCharts>; let listHelmChartsMock: AsyncFnMock<ListHelmCharts>;
let callForHelmChartVersionsMock: AsyncFnMock<CallForHelmChartVersions>; let callForHelmChartVersionsMock: AsyncFnMock<CallForHelmChartVersions>;
let callForHelmChartReadmeMock: AsyncFnMock<CallForHelmChartReadme>; let callForHelmChartReadmeMock: AsyncFnMock<CallForHelmChartReadme>;
let callForHelmChartValuesMock: jest.Mock; let callForHelmChartValuesMock: jest.Mock;
@ -45,7 +44,7 @@ describe("opening dock tab for installing helm chart", () => {
overrideFsWithFakes(rendererDi); overrideFsWithFakes(rendererDi);
callForHelmChartsMock = asyncFn(); listHelmChartsMock = asyncFn();
callForHelmChartVersionsMock = asyncFn(); callForHelmChartVersionsMock = asyncFn();
callForHelmChartReadmeMock = asyncFn(); callForHelmChartReadmeMock = asyncFn();
callForHelmChartValuesMock = jest.fn(); callForHelmChartValuesMock = jest.fn();
@ -59,8 +58,8 @@ describe("opening dock tab for installing helm chart", () => {
rendererDi.override(hostedClusterIdInjectable, () => "some-cluster-id"); rendererDi.override(hostedClusterIdInjectable, () => "some-cluster-id");
rendererDi.override( rendererDi.override(
callForHelmChartsInjectable, listHelmChartsInjectable,
() => callForHelmChartsMock, () => listHelmChartsMock,
); );
rendererDi.override( rendererDi.override(
@ -74,12 +73,12 @@ describe("opening dock tab for installing helm chart", () => {
); );
rendererDi.override( rendererDi.override(
callForHelmChartValuesInjectable, callForHelmChartVersionsInjectable,
() => callForHelmChartValuesMock, () => callForHelmChartValuesMock,
); );
rendererDi.override( rendererDi.override(
callForCreateHelmReleaseInjectable, createHelmReleaseInjectable,
() => jest.fn(), () => jest.fn(),
); );
@ -112,12 +111,12 @@ describe("opening dock tab for installing helm chart", () => {
}); });
it("calls for charts", () => { it("calls for charts", () => {
expect(callForHelmChartsMock).toHaveBeenCalled(); expect(listHelmChartsMock).toHaveBeenCalled();
}); });
describe("when charts resolve", () => { describe("when charts resolve", () => {
beforeEach(async () => { beforeEach(async () => {
await callForHelmChartsMock.resolve([ await listHelmChartsMock.resolve([
HelmChart.create({ HelmChart.create({
apiVersion: "some-api-version", apiVersion: "some-api-version",
name: "some-name", name: "some-name",

View File

@ -6,7 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
import { asyncComputed } from "@ogre-tools/injectable-react"; import { asyncComputed } from "@ogre-tools/injectable-react";
import callForHelmChartReadmeInjectable from "./readme/call-for-helm-chart-readme.injectable"; import callForHelmChartReadmeInjectable from "./readme/call-for-helm-chart-readme.injectable";
import helmChartDetailsVersionSelectionInjectable from "./versions/helm-chart-details-version-selection.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({ const readmeOfSelectedHelmChartInjectable = getInjectable({
id: "readme-of-selected-helm-chart", id: "readme-of-selected-helm-chart",

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; 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 = ( export type CallForHelmChartReadme = (
repo: string, repo: string,
@ -13,16 +13,16 @@ export type CallForHelmChartReadme = (
const callForHelmChartReadmeInjectable = getInjectable({ const callForHelmChartReadmeInjectable = getInjectable({
id: "call-for-helm-chart-readme", id: "call-for-helm-chart-readme",
instantiate: (di): CallForHelmChartReadme => {
const getHelmChartDetails = di.inject(getHelmChartDetailsInjectable);
instantiate: return async (repository, name, version) => {
(): CallForHelmChartReadme => // TODO: Dismantle wrong abstraction
async (repository: string, name: string, version: string) => { const details = await getHelmChartDetails(repository, name, { version });
// TODO: Dismantle wrong abstraction
const details = await getChartDetails(repository, name, { version });
return details.readme;
},
return details.readme;
};
},
causesSideEffects: true, causesSideEffects: true,
}); });

View File

@ -5,7 +5,7 @@
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
import { asyncComputed } from "@ogre-tools/injectable-react"; import { asyncComputed } from "@ogre-tools/injectable-react";
import callForHelmChartVersionsInjectable from "./versions/call-for-helm-chart-versions.injectable"; 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({ const versionsOfSelectedHelmChartInjectable = getInjectable({
id: "versions-of-selected-helm-chart", id: "versions-of-selected-helm-chart",

View File

@ -3,8 +3,8 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { HelmChart } from "../../../../../common/k8s-api/endpoints/helm-charts.api"; import type { HelmChart } from "../../../../../renderer/k8s/helm-chart";
import { getChartDetails } from "../../../../../common/k8s-api/endpoints/helm-charts.api"; import getHelmChartDetailsInjectable from "../../../../k8s/helm-charts.api/get-details.injectable";
export type CallForHelmChartVersions = ( export type CallForHelmChartVersions = (
repo: string, repo: string,
@ -14,13 +14,16 @@ export type CallForHelmChartVersions = (
const callForHelmChartVersionsInjectable = getInjectable({ const callForHelmChartVersionsInjectable = getInjectable({
id: "call-for-helm-chart-versions", id: "call-for-helm-chart-versions",
instantiate: instantiate: (di): CallForHelmChartVersions => {
(): CallForHelmChartVersions => async (repository: string, name: string) => { const getHelmChartDetails = di.inject(getHelmChartDetailsInjectable);
// TODO: Dismantle wrong abstraction
const details = await getChartDetails(repository, name); return async (repository, name) => {
// TODO: Dismantle wrong abstraction
const details = await getHelmChartDetails(repository, name);
return details.versions; return details.versions;
}, };
},
causesSideEffects: true, causesSideEffects: true,
}); });

View File

@ -6,7 +6,7 @@ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
import type { IComputedValue } from "mobx"; import type { IComputedValue } from "mobx";
import { computed, observable } from "mobx"; import { computed, observable } from "mobx";
import versionsOfSelectedHelmChartInjectable from "../versions-of-selected-helm-chart.injectable"; 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"; import type { SingleValue } from "react-select";
interface VersionSelectionOption { interface VersionSelectionOption {

View File

@ -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<HelmChart[]>;
const callForHelmChartsInjectable = getInjectable({
id: "call-for-helm-charts",
instantiate: (): CallForHelmCharts => async () => await listCharts(),
causesSideEffects: true,
});
export default callForHelmChartsInjectable;

View File

@ -4,15 +4,15 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { asyncComputed } from "@ogre-tools/injectable-react"; 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({ const helmChartsInjectable = getInjectable({
id: "helm-charts", id: "helm-charts",
instantiate: (di) => { instantiate: (di) => {
const callForHelmCharts = di.inject(callForHelmChartsInjectable); const listHelmCharts = di.inject(listHelmChartsInjectable);
return asyncComputed(async () => await callForHelmCharts(), []); return asyncComputed(async () => await listHelmCharts(), []);
}, },
}); });

View File

@ -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<HelmReleaseUpdateDetails>;
const callForCreateHelmReleaseInjectable = getInjectable({
id: "call-for-create-helm-release",
instantiate: (): CallForCreateHelmRelease => createRelease,
causesSideEffects: true,
});
export default callForCreateHelmReleaseInjectable;

View File

@ -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<string>;
const callForHelmChartValuesInjectable = getInjectable({
id: "call-for-helm-chart-values",
instantiate: (): CallForHelmChartValues => getChartValues,
causesSideEffects: true,
});
export default callForHelmChartValuesInjectable;

View File

@ -5,8 +5,6 @@
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
import installChartTabStoreInjectable from "./store.injectable"; import installChartTabStoreInjectable from "./store.injectable";
import { waitUntilDefined } from "../../../../common/utils"; 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 type { IChartInstallData, InstallChartTabStore } from "./store";
import React from "react"; import React from "react";
import { import {
@ -16,8 +14,6 @@ import {
runInAction, runInAction,
} from "mobx"; } from "mobx";
import assert from "assert"; 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 dockStoreInjectable from "../dock/store.injectable";
import type { NavigateToHelmReleases } from "../../../../common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.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"; 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 callForHelmChartVersionsInjectable from "../../+helm-charts/details/versions/call-for-helm-chart-versions.injectable";
import type { HelmChart } from "../../../k8s/helm-chart"; import type { HelmChart } from "../../../k8s/helm-chart";
import type { HelmReleaseUpdateDetails } from "../../../k8s/helm-releases.api/update.injectable"; 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({ const installChartModelInjectable = getInjectable({
id: "install-chart-model", id: "install-chart-model",
instantiate: async (di, tabId: string) => { instantiate: async (di, tabId: string) => {
const store = di.inject(installChartTabStoreInjectable); const store = di.inject(installChartTabStoreInjectable);
const callForHelmChartValues = di.inject(callForHelmChartValuesInjectable); const callForHelmChartValues = di.inject(getHelmChartValuesInjectable);
const callForHelmChartVersions = di.inject(callForHelmChartVersionsInjectable); const callForHelmChartVersions = di.inject(callForHelmChartVersionsInjectable);
const callForCreateHelmRelease = di.inject(callForCreateHelmReleaseInjectable); const callForCreateHelmRelease = di.inject(createHelmReleaseInjectable);
const dockStore = di.inject(dockStoreInjectable); const dockStore = di.inject(dockStoreInjectable);
const navigateToHelmReleases = di.inject(navigateToHelmReleasesInjectable); const navigateToHelmReleases = di.inject(navigateToHelmReleasesInjectable);
const closeTab = () => dockStore.closeTab(tabId); const closeTab = () => dockStore.closeTab(tabId);
@ -71,8 +71,8 @@ interface Dependencies {
closeTab: () => void; closeTab: () => void;
navigateToHelmReleases: NavigateToHelmReleases; navigateToHelmReleases: NavigateToHelmReleases;
waitForChart: () => Promise<void>; waitForChart: () => Promise<void>;
callForCreateHelmRelease: CallForCreateHelmRelease; callForCreateHelmRelease: CreateHelmRelease;
callForHelmChartValues: CallForHelmChartValues; callForHelmChartValues: GetHelmChartValues;
callForHelmChartVersions: CallForHelmChartVersions; callForHelmChartVersions: CallForHelmChartVersions;
store: InstallChartTabStore; store: InstallChartTabStore;
} }

View File

@ -7,8 +7,6 @@ import { InstallChartTabStore } from "./store";
import createDockTabStoreInjectable from "../dock-tab-store/create-dock-tab-store.injectable"; import createDockTabStoreInjectable from "../dock-tab-store/create-dock-tab-store.injectable";
import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable";
import type { HelmReleaseUpdateDetails } from "../../../k8s/helm-releases.api/update.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({ const installChartTabStoreInjectable = getInjectable({
id: "install-chart-tab-store", id: "install-chart-tab-store",
@ -20,8 +18,6 @@ const installChartTabStoreInjectable = getInjectable({
createStorage: di.inject(createStorageInjectable), createStorage: di.inject(createStorageInjectable),
versionsStore: createDockTabStore<string[]>(), versionsStore: createDockTabStore<string[]>(),
detailsStore: createDockTabStore<HelmReleaseUpdateDetails>(), detailsStore: createDockTabStore<HelmReleaseUpdateDetails>(),
getHelmChartDetails: di.inject(getHelmChartDetailsInjectable),
getHelmChartValues: di.inject(getHelmChartValuesInjectable),
}); });
}, },
}); });