1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Fix remaining test failures

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-11-29 10:57:20 -05:00
parent 408f81121e
commit 97bf4ae129
4 changed files with 20 additions and 28 deletions

View File

@ -6,6 +6,8 @@
import type { DiContainer } from "@ogre-tools/injectable"; import type { DiContainer } from "@ogre-tools/injectable";
import clusterFrameContextForNamespacedResourcesInjectable from "../../../renderer/cluster-frame-context/for-namespaced-resources.injectable"; import clusterFrameContextForNamespacedResourcesInjectable from "../../../renderer/cluster-frame-context/for-namespaced-resources.injectable";
import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting"; import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting";
import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable";
import directoryForUserDataInjectable from "../../app-paths/directory-for-user-data/directory-for-user-data.injectable";
import type { ApiManager } from "../api-manager"; import type { ApiManager } from "../api-manager";
import apiManagerInjectable from "../api-manager/manager.injectable"; import apiManagerInjectable from "../api-manager/manager.injectable";
import { KubeApi } from "../kube-api"; import { KubeApi } from "../kube-api";
@ -28,6 +30,10 @@ describe("ApiManager", () => {
beforeEach(() => { beforeEach(() => {
di = getDiForUnitTesting({ doGeneralOverrides: true }); di = getDiForUnitTesting({ doGeneralOverrides: true });
di.override(storesAndApisCanBeCreatedInjectable, () => true);
di.override(directoryForUserDataInjectable, () => "/some-user-store-path");
apiManager = di.inject(apiManagerInjectable); apiManager = di.inject(apiManagerInjectable);
}); });

View File

@ -3,7 +3,6 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import type { KubeJsonApi } from "../kube-json-api"; import type { KubeJsonApi } from "../kube-json-api";
import { PassThrough } from "stream";
import type { ApiManager } from "../api-manager"; import type { ApiManager } from "../api-manager";
import { Ingress, IngressApi } from "../endpoints"; import { Ingress, IngressApi } from "../endpoints";
import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting"; import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting";
@ -14,32 +13,10 @@ import type { AsyncFnMock } from "@async-fn/jest";
import asyncFn from "@async-fn/jest"; import asyncFn from "@async-fn/jest";
import { flushPromises } from "../../test-utils/flush-promises"; import { flushPromises } from "../../test-utils/flush-promises";
import createKubeJsonApiInjectable from "../create-kube-json-api.injectable"; import createKubeJsonApiInjectable from "../create-kube-json-api.injectable";
import type { Response, Headers as NodeFetchHeaders } from "node-fetch";
import setupAutoRegistrationInjectable from "../../../renderer/before-frame-starts/runnables/setup-auto-registration.injectable"; import setupAutoRegistrationInjectable from "../../../renderer/before-frame-starts/runnables/setup-auto-registration.injectable";
import { createMockResponseFromString } from "../../../test-utils/mock-responses";
const createMockResponseFromString = (url: string, data: string, statusCode = 200) => { import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable";
const res: jest.Mocked<Response> = { import directoryForUserDataInjectable from "../../app-paths/directory-for-user-data/directory-for-user-data.injectable";
buffer: jest.fn(async () => { throw new Error("buffer() is not supported"); }),
clone: jest.fn(() => res),
arrayBuffer: jest.fn(async () => { throw new Error("arrayBuffer() is not supported"); }),
blob: jest.fn(async () => { throw new Error("blob() is not supported"); }),
body: new PassThrough(),
bodyUsed: false,
headers: new Headers() as NodeFetchHeaders,
json: jest.fn(async () => JSON.parse(await res.text())),
ok: 200 <= statusCode && statusCode < 300,
redirected: 300 <= statusCode && statusCode < 400,
size: data.length,
status: statusCode,
statusText: "some-text",
text: jest.fn(async () => data),
type: "basic",
url,
formData: jest.fn(async () => { throw new Error("formData() is not supported"); }),
};
return res;
};
describe("KubeApi", () => { describe("KubeApi", () => {
let request: KubeJsonApi; let request: KubeJsonApi;
@ -52,6 +29,9 @@ describe("KubeApi", () => {
fetchMock = asyncFn(); fetchMock = asyncFn();
di.override(fetchInjectable, () => fetchMock); di.override(fetchInjectable, () => fetchMock);
di.override(storesAndApisCanBeCreatedInjectable, () => true);
di.override(directoryForUserDataInjectable, () => "/some-user-store-path");
const createKubeJsonApi = di.inject(createKubeJsonApiInjectable); const createKubeJsonApi = di.inject(createKubeJsonApiInjectable);
request = createKubeJsonApi({ request = createKubeJsonApi({

View File

@ -21,6 +21,8 @@ import type { KubeJsonApiDataFor } from "../kube-object";
import AbortController from "abort-controller"; import AbortController from "abort-controller";
import setupAutoRegistrationInjectable from "../../../renderer/before-frame-starts/runnables/setup-auto-registration.injectable"; import setupAutoRegistrationInjectable from "../../../renderer/before-frame-starts/runnables/setup-auto-registration.injectable";
import { createMockResponseFromStream, createMockResponseFromString } from "../../../test-utils/mock-responses"; import { createMockResponseFromStream, createMockResponseFromString } from "../../../test-utils/mock-responses";
import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable";
import directoryForUserDataInjectable from "../../app-paths/directory-for-user-data/directory-for-user-data.injectable";
describe("createKubeApiForRemoteCluster", () => { describe("createKubeApiForRemoteCluster", () => {
let createKubeApiForRemoteCluster: CreateKubeApiForRemoteCluster; let createKubeApiForRemoteCluster: CreateKubeApiForRemoteCluster;
@ -32,6 +34,9 @@ describe("createKubeApiForRemoteCluster", () => {
fetchMock = asyncFn(); fetchMock = asyncFn();
di.override(fetchInjectable, () => fetchMock); di.override(fetchInjectable, () => fetchMock);
di.override(storesAndApisCanBeCreatedInjectable, () => true);
di.override(directoryForUserDataInjectable, () => "/some-user-store-path");
createKubeApiForRemoteCluster = di.inject(createKubeApiForRemoteClusterInjectable); createKubeApiForRemoteCluster = di.inject(createKubeApiForRemoteClusterInjectable);
}); });
@ -121,6 +126,9 @@ describe("KubeApi", () => {
fetchMock = asyncFn(); fetchMock = asyncFn();
di.override(fetchInjectable, () => fetchMock); di.override(fetchInjectable, () => fetchMock);
di.override(storesAndApisCanBeCreatedInjectable, () => true);
di.override(directoryForUserDataInjectable, () => "/some-user-store-path");
const createKubeJsonApi = di.inject(createKubeJsonApiInjectable); const createKubeJsonApi = di.inject(createKubeJsonApiInjectable);
request = createKubeJsonApi({ request = createKubeJsonApi({

View File

@ -105,7 +105,6 @@ export class JsonApi<Data = JsonApiData, Params extends JsonApiParams<Data> = Js
const { query } = params ?? {}; const { query } = params ?? {};
if (query && Object.keys(query).length > 0) { if (query && Object.keys(query).length > 0) {
console.log(query);
const queryString = stringify(query as unknown as QueryParams); const queryString = stringify(query as unknown as QueryParams);
reqUrl += (reqUrl.includes("?") ? "&" : "?") + queryString; reqUrl += (reqUrl.includes("?") ? "&" : "?") + queryString;
@ -173,7 +172,6 @@ export class JsonApi<Data = JsonApiData, Params extends JsonApiParams<Data> = Js
} }
if (query && Object.keys(query).length > 0) { if (query && Object.keys(query).length > 0) {
console.log(query);
const queryString = stringify(query as unknown as QueryParams); const queryString = stringify(query as unknown as QueryParams);
reqUrl += (reqUrl.includes("?") ? "&" : "?") + queryString; reqUrl += (reqUrl.includes("?") ? "&" : "?") + queryString;