diff --git a/integration/specs/app_spec.ts b/integration/specs/app_spec.ts index f3cb922740..9c9a7361fb 100644 --- a/integration/specs/app_spec.ts +++ b/integration/specs/app_spec.ts @@ -26,11 +26,8 @@ describe("app start", () => { const waitForMinikubeDashboard = async (app: Application) => { await app.client.waitUntilTextExists("pre.kube-auth-out", "Authentication proxy started") let windowCount = await app.client.getWindowCount() - // wait for webview to appear on window count - while (windowCount == 1) { - windowCount = await app.client.getWindowCount() - } - await app.client.windowByIndex(windowCount - 1) + await app.client.waitForExist(`iframe[name="minikube"]`) + await app.client.frame("minikube") await app.client.waitUntilTextExists("span.link-text", "Cluster") } @@ -39,10 +36,10 @@ describe("app start", () => { await app.start() await app.client.waitUntilWindowLoaded() let windowCount = await app.client.getWindowCount() - while (windowCount > 1) { + while (windowCount > 1) { // Wait for splash screen to be closed windowCount = await app.client.getWindowCount() } - await app.client.windowByIndex(windowCount - 1) + await app.client.windowByIndex(0) await app.client.waitUntilWindowLoaded() }, 20000) diff --git a/src/main/cluster.ts b/src/main/cluster.ts index 6ba0fb1f48..5176846ba4 100644 --- a/src/main/cluster.ts +++ b/src/main/cluster.ts @@ -27,6 +27,7 @@ export interface ClusterState extends ClusterModel { online: boolean; disconnected: boolean; accessible: boolean; + ready: boolean; failureReason: string; nodes: number; eventCount: number; @@ -47,6 +48,7 @@ export class Cluster implements ClusterModel { protected eventDisposers: Function[] = []; whenInitialized = when(() => this.initialized); + whenReady = when(() => this.ready); @observable initialized = false; @observable contextName: string; @@ -56,6 +58,7 @@ export class Cluster implements ClusterModel { @observable kubeProxyUrl: string; // lens-proxy to kube-api url @observable online: boolean; @observable accessible: boolean; + @observable ready: boolean; @observable disconnected: boolean; @observable failureReason: string; @observable nodes = 0; @@ -149,6 +152,7 @@ export class Cluster implements ClusterModel { this.disconnected = true; this.online = false; this.accessible = false; + this.ready = false; this.pushState(); } @@ -172,6 +176,7 @@ export class Cluster implements ClusterModel { this.refreshEvents(), this.refreshAllowedResources(), ]); + this.ready = true } } @@ -370,6 +375,7 @@ export class Cluster implements ClusterModel { initialized: this.initialized, apiUrl: this.apiUrl, online: this.online, + ready: this.ready, disconnected: this.disconnected, accessible: this.accessible, failureReason: this.failureReason, diff --git a/src/renderer/components/cluster-manager/lens-views.ts b/src/renderer/components/cluster-manager/lens-views.ts index 67a0ac68e2..25cb2d5f3a 100644 --- a/src/renderer/components/cluster-manager/lens-views.ts +++ b/src/renderer/components/cluster-manager/lens-views.ts @@ -21,10 +21,10 @@ export async function initView(clusterId: ClusterId) { } logger.info(`[LENS-VIEW]: init dashboard, clusterId=${clusterId}`) const cluster = clusterStore.getById(clusterId); - await cluster.whenInitialized; + await cluster.whenReady; const parentElem = document.getElementById("lens-views"); const iframe = document.createElement("iframe"); - iframe.name = cluster.preferences.clusterName; + iframe.name = cluster.contextName; iframe.setAttribute("src", `//${clusterId}.${location.host}`) iframe.addEventListener("load", async () => { logger.info(`[LENS-VIEW]: loaded from ${iframe.src}`)