From 67395253bea325fbbb7176be58cdce7feb927cf6 Mon Sep 17 00:00:00 2001 From: Lauri Nevala Date: Thu, 18 Feb 2021 07:31:40 +0200 Subject: [PATCH] Add test for re-registering store (#2161) Signed-off-by: Lauri Nevala --- .../api/__tests__/api-manager.test.ts | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/renderer/api/__tests__/api-manager.test.ts diff --git a/src/renderer/api/__tests__/api-manager.test.ts b/src/renderer/api/__tests__/api-manager.test.ts new file mode 100644 index 0000000000..29ce7bd189 --- /dev/null +++ b/src/renderer/api/__tests__/api-manager.test.ts @@ -0,0 +1,40 @@ +import { ingressStore } from "../../components/+network-ingresses/ingress.store"; +import { apiManager } from "../api-manager"; +import { KubeApi } from "../kube-api"; + +class TestApi extends KubeApi { + + protected async checkPreferredVersion() { + return; + } +} + +describe("ApiManager", () => { + describe("registerApi", () => { + it("re-register store if apiBase changed", async () => { + const apiBase = "apis/v1/foo"; + const fallbackApiBase = "/apis/extensions/v1beta1/foo"; + const kubeApi = new TestApi({ + apiBase, + fallbackApiBases: [fallbackApiBase], + checkPreferredVersion: true, + }); + + apiManager.registerApi(apiBase, kubeApi); + + // Define to use test api for ingress store + Object.defineProperty(ingressStore, "api", { value: kubeApi }); + apiManager.registerStore(ingressStore, [kubeApi]); + + // Test that store is returned with original apiBase + expect(apiManager.getStore(kubeApi)).toBe(ingressStore); + + // Change apiBase similar as checkPreferredVersion does + Object.defineProperty(kubeApi, "apiBase", { value: fallbackApiBase }); + apiManager.registerApi(fallbackApiBase, kubeApi); + + // Test that store is returned with new apiBase + expect(apiManager.getStore(kubeApi)).toBe(ingressStore); + }); + }); +});