mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Handle error about no helm repositories when updating repositories
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
88fd267988
commit
484aadb920
File diff suppressed because it is too large
Load Diff
@ -218,7 +218,7 @@ describe("listing active helm repositories in preferences", () => {
|
|||||||
expect(readYamlFileMock).not.toHaveBeenCalled();
|
expect(readYamlFileMock).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("when updating repositories reject", () => {
|
describe("when updating repositories reject with any other error", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await execFileMock.reject("Some error");
|
await execFileMock.reject("Some error");
|
||||||
});
|
});
|
||||||
@ -246,65 +246,12 @@ describe("listing active helm repositories in preferences", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("when updating repositories resolve", () => {
|
describe("when updating repositories reject with error about no existing repositories", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
execFileMock.mockClear();
|
execFileMock.mockClear();
|
||||||
|
|
||||||
await execFileMock.resolveSpecific(
|
await execFileMock.reject(
|
||||||
["some-helm-binary-path", ["repo", "update"]],
|
"Error: no repositories found. You must add one before updating",
|
||||||
"",
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("loads repositories from file system", () => {
|
|
||||||
expect(readYamlFileMock).toHaveBeenCalledWith(
|
|
||||||
"some-helm-repository-config-file.yaml",
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("when loading repositories resolves with existing repositories", () => {
|
|
||||||
beforeEach(async () => {
|
|
||||||
execFileMock.mockClear();
|
|
||||||
|
|
||||||
await readYamlFileMock.resolveSpecific(
|
|
||||||
["some-helm-repository-config-file.yaml"],
|
|
||||||
repositoryConfigStub,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("does not add default repository", () => {
|
|
||||||
expect(execFileMock).not.toHaveBeenCalledWith(
|
|
||||||
"some-helm-binary-path",
|
|
||||||
["repo", "add", "bitnami", "https://charts.bitnami.com/bitnami"],
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("renders", () => {
|
|
||||||
expect(rendered.baseElement).toMatchSnapshot();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("does not show loader for repositories anymore", () => {
|
|
||||||
expect(
|
|
||||||
rendered.queryByTestId("helm-repositories-are-loading"),
|
|
||||||
).not.toBeInTheDocument();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("shows repositories in use", () => {
|
|
||||||
const actual = rendered.getAllByTestId(
|
|
||||||
/^helm-repository-(some-repository|some-other-repository)$/,
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(actual).toHaveLength(2);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("when loading repositories resolves with no existing repositories", () => {
|
|
||||||
beforeEach(async () => {
|
|
||||||
execFileMock.mockClear();
|
|
||||||
|
|
||||||
await readYamlFileMock.resolveSpecific(
|
|
||||||
["some-helm-repository-config-file.yaml"],
|
|
||||||
{ repositories: [] },
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -426,6 +373,58 @@ describe("listing active helm repositories in preferences", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("when updating repositories resolve", () => {
|
||||||
|
beforeEach(async () => {
|
||||||
|
execFileMock.mockClear();
|
||||||
|
|
||||||
|
await execFileMock.resolveSpecific(
|
||||||
|
["some-helm-binary-path", ["repo", "update"]],
|
||||||
|
"",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("loads repositories from file system", () => {
|
||||||
|
expect(readYamlFileMock).toHaveBeenCalledWith(
|
||||||
|
"some-helm-repository-config-file.yaml",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("when repositories resolves", () => {
|
||||||
|
beforeEach(async () => {
|
||||||
|
execFileMock.mockClear();
|
||||||
|
|
||||||
|
await readYamlFileMock.resolveSpecific(
|
||||||
|
["some-helm-repository-config-file.yaml"],
|
||||||
|
repositoryConfigStub,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("does not add default repository", () => {
|
||||||
|
expect(execFileMock).not.toHaveBeenCalledWith(
|
||||||
|
"some-helm-binary-path",
|
||||||
|
["repo", "add", "bitnami", "https://charts.bitnami.com/bitnami"],
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("renders", () => {
|
||||||
|
expect(rendered.baseElement).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("does not show loader for repositories anymore", () => {
|
||||||
|
expect(
|
||||||
|
rendered.queryByTestId("helm-repositories-are-loading"),
|
||||||
|
).not.toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("shows repositories in use", () => {
|
||||||
|
const actual = rendered.getAllByTestId(
|
||||||
|
/^helm-repository-(some-repository|some-other-repository)$/,
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(actual).toHaveLength(2);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -8,7 +8,6 @@ import type { ReadYamlFile } from "../../../../common/fs/read-yaml-file.injectab
|
|||||||
import readYamlFileInjectable from "../../../../common/fs/read-yaml-file.injectable";
|
import readYamlFileInjectable from "../../../../common/fs/read-yaml-file.injectable";
|
||||||
import getHelmEnvInjectable from "../../get-helm-env/get-helm-env.injectable";
|
import getHelmEnvInjectable from "../../get-helm-env/get-helm-env.injectable";
|
||||||
import execHelmInjectable from "../../exec-helm/exec-helm.injectable";
|
import execHelmInjectable from "../../exec-helm/exec-helm.injectable";
|
||||||
import { isEmpty } from "lodash/fp";
|
|
||||||
import loggerInjectable from "../../../../common/logger.injectable";
|
import loggerInjectable from "../../../../common/logger.injectable";
|
||||||
import type { AsyncResult } from "../../../../common/utils/async-result";
|
import type { AsyncResult } from "../../../../common/utils/async-result";
|
||||||
|
|
||||||
@ -84,15 +83,13 @@ const getActiveHelmRepositoriesInjectable = getInjectable({
|
|||||||
const updateResult = await execHelm("repo", "update");
|
const updateResult = await execHelm("repo", "update");
|
||||||
|
|
||||||
if (!updateResult.callWasSuccessful) {
|
if (!updateResult.callWasSuccessful) {
|
||||||
|
if (!updateResult.error.includes(internalHelmErrorForNoRepositoriesFound)) {
|
||||||
return {
|
return {
|
||||||
callWasSuccessful: false,
|
callWasSuccessful: false,
|
||||||
error: `Error updating Helm repositories: ${updateResult.error}`,
|
error: `Error updating Helm repositories: ${updateResult.error}`,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const repositories = await getRepositories();
|
|
||||||
|
|
||||||
if (isEmpty(repositories)) {
|
|
||||||
const resultOfAddingDefaultRepository = await execHelm("repo", "add", "bitnami", "https://charts.bitnami.com/bitnami");
|
const resultOfAddingDefaultRepository = await execHelm("repo", "add", "bitnami", "https://charts.bitnami.com/bitnami");
|
||||||
|
|
||||||
if (!resultOfAddingDefaultRepository.callWasSuccessful) {
|
if (!resultOfAddingDefaultRepository.callWasSuccessful) {
|
||||||
@ -101,11 +98,9 @@ const getActiveHelmRepositoriesInjectable = getInjectable({
|
|||||||
error: `Error when adding default Helm repository: ${resultOfAddingDefaultRepository.error}`,
|
error: `Error when adding default Helm repository: ${resultOfAddingDefaultRepository.error}`,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return { callWasSuccessful: true, response: await getRepositories() };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return { callWasSuccessful: true, response: repositories };
|
return { callWasSuccessful: true, response: await getRepositories() };
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -132,3 +127,5 @@ const getRepositoriesForFor =
|
|||||||
cacheFilePath: `${helmRepositoryCacheDirPath}/${repository.name}-index.yaml`,
|
cacheFilePath: `${helmRepositoryCacheDirPath}/${repository.name}-index.yaml`,
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const internalHelmErrorForNoRepositoriesFound = "no repositories found. You must add one before updating";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user