From 06893c3fbc0db385d2149e080af951fd663141bf Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Wed, 21 Apr 2021 06:44:07 +0300 Subject: [PATCH] refactor Signed-off-by: Jari Kolehmainen --- src/main/__test__/kubeconfig-manager.test.ts | 4 +++- src/main/kubeconfig-manager.ts | 12 ++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/__test__/kubeconfig-manager.test.ts b/src/main/__test__/kubeconfig-manager.test.ts index 38bfc73aea..af1a2d3735 100644 --- a/src/main/__test__/kubeconfig-manager.test.ts +++ b/src/main/__test__/kubeconfig-manager.test.ts @@ -109,6 +109,8 @@ describe("kubeconfig manager tests", () => { await kubeConfManager.unlink(); expect(await fse.pathExists(configPath)).toBe(false); await kubeConfManager.unlink(); // doesn't throw - expect(await kubeConfManager.getPath()).toBeUndefined(); + expect(async () => { + await kubeConfManager.getPath(); + }).rejects.toThrow("already unlinked"); }); }); diff --git a/src/main/kubeconfig-manager.ts b/src/main/kubeconfig-manager.ts index 5be892fc81..6fe5cddf39 100644 --- a/src/main/kubeconfig-manager.ts +++ b/src/main/kubeconfig-manager.ts @@ -13,13 +13,17 @@ export class KubeconfigManager { constructor(protected cluster: Cluster, protected contextHandler: ContextHandler, protected port: number) { } - async getPath() { - if (!this.tempFile && this.tempFile !== undefined) { + async getPath(): Promise { + if (this.tempFile === undefined) { + throw new Error("kubeconfig is already unlinked"); + } + + if (!this.tempFile) { await this.init(); } - // create proxy kubeconfig if it is removed - if (this.tempFile !== undefined && !(await fs.pathExists(this.tempFile))) { + // create proxy kubeconfig if it is removed without unlink called + if (!(await fs.pathExists(this.tempFile))) { try { this.tempFile = await this.createProxyKubeconfig(); } catch (err) {