mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
fix helm repos integration tests
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
parent
2f8ff0220b
commit
65c8109d9d
@ -27,6 +27,7 @@
|
||||
*/
|
||||
import type { Page } from "playwright";
|
||||
import * as utils from "../helpers/utils";
|
||||
import { listHelmRepositories } from "../helpers/utils";
|
||||
|
||||
describe("preferences page tests", () => {
|
||||
let window: Page, cleanup: () => Promise<void>;
|
||||
@ -65,6 +66,12 @@ describe("preferences page tests", () => {
|
||||
|
||||
it("ensures helm repos", async () => {
|
||||
await window.click("[data-testid=kubernetes-tab]");
|
||||
const repos = await listHelmRepositories(); // wait for default helm repo to be added
|
||||
|
||||
if (repos.length === 0) {
|
||||
fail("Lens failed to add any repositories");
|
||||
}
|
||||
|
||||
await window.waitForSelector("[data-testid=repository-name]", {
|
||||
timeout: 100_000,
|
||||
});
|
||||
|
||||
@ -25,6 +25,8 @@ import * as path from "path";
|
||||
import * as uuid from "uuid";
|
||||
import { ElectronApplication, Frame, Page, _electron as electron } from "playwright";
|
||||
import { noop } from "lodash";
|
||||
import { promisify } from "util";
|
||||
import { exec } from "child_process";
|
||||
|
||||
export const AppPaths: Partial<Record<NodeJS.Platform, string>> = {
|
||||
"win32": "./dist/win-unpacked/OpenLens.exe",
|
||||
@ -67,7 +69,10 @@ export async function start() {
|
||||
args: ["--integration-testing"], // this argument turns off the blocking of quit
|
||||
executablePath: AppPaths[process.platform],
|
||||
bypassCSP: true,
|
||||
env: { CICD },
|
||||
env: {
|
||||
CICD,
|
||||
...process.env
|
||||
},
|
||||
timeout: 100_000,
|
||||
} as Parameters<typeof electron["launch"]>[0]);
|
||||
|
||||
@ -114,3 +119,24 @@ export async function lauchMinikubeClusterFromCatalog(window: Page): Promise<Fra
|
||||
|
||||
return frame;
|
||||
}
|
||||
|
||||
export const promiseExec = promisify(exec);
|
||||
|
||||
type HelmRepository = {
|
||||
name: string;
|
||||
url: string;
|
||||
};
|
||||
|
||||
export async function listHelmRepositories(): Promise<HelmRepository[]>{
|
||||
for (let i = 0; i < 10; i += 1) {
|
||||
try {
|
||||
const { stdout } = await promiseExec("helm repo list -o json");
|
||||
|
||||
return JSON.parse(stdout);
|
||||
} catch {
|
||||
await new Promise(r => setTimeout(r, 2000)); // if no repositories, wait for Lens adding bitnami repository
|
||||
}
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user