From 7c3eee0cfc9ce31fe42709730e59df554631d62a Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 29 Jun 2020 16:33:28 +0300 Subject: [PATCH] mock user-store for kubectl_spec --- src/common/user-store_spec.ts | 2 -- src/main/kubectl.ts | 10 ++++----- src/main/kubectl_spec.ts | 14 ++++++++++++- src/main/port_spec.ts | 39 ++++++++++++++--------------------- 4 files changed, 33 insertions(+), 32 deletions(-) diff --git a/src/common/user-store_spec.ts b/src/common/user-store_spec.ts index 7a4a42fe21..53901732c6 100644 --- a/src/common/user-store_spec.ts +++ b/src/common/user-store_spec.ts @@ -1,8 +1,6 @@ import mockFs from "mock-fs" import { userStore, UserStore } from "./user-store" -jest.mock("electron") - // Console.log needs to be called before fs-mocks, see https://github.com/tschaub/mock-fs/issues/234 console.log(""); diff --git a/src/main/kubectl.ts b/src/main/kubectl.ts index 33ffbdc5ce..73efc507b3 100644 --- a/src/main/kubectl.ts +++ b/src/main/kubectl.ts @@ -285,13 +285,11 @@ export class Kubectl { } protected getDownloadMirror() { - if (process.platform == "darwin") { - return packageMirrors.get("default") // MacOS packages are only available from default - } const mirror = packageMirrors.get(userStore.getPreferences().downloadMirror) - if (mirror) { return mirror } - - return packageMirrors.get("default") + if (mirror) { + return mirror + } + return packageMirrors.get("default") // MacOS packages are only available from default } } diff --git a/src/main/kubectl_spec.ts b/src/main/kubectl_spec.ts index 6b4f23a99f..25d1da4676 100644 --- a/src/main/kubectl_spec.ts +++ b/src/main/kubectl_spec.ts @@ -1,7 +1,19 @@ import packageInfo from "../../package.json" import { bundledKubectl, Kubectl } from "../../src/main/kubectl"; +import { UserStore } from "../common/user-store"; -jest.mock("electron") +jest.mock("../common/user-store", () => { + const userStoreMock: Partial = { + getPreferences() { + return { + downloadMirror: "default" + } + } + } + return { + userStore: userStoreMock, + } +}) describe("kubectlVersion", () => { it("returns bundled version if exactly same version used", async () => { diff --git a/src/main/port_spec.ts b/src/main/port_spec.ts index 9ff748c280..bce8cce413 100644 --- a/src/main/port_spec.ts +++ b/src/main/port_spec.ts @@ -1,32 +1,25 @@ import { EventEmitter } from 'events' import { getFreePort } from "./port" -import net from "net" -jest.mock("net"); - -class MockServer extends EventEmitter { - listen = jest.fn((obj) => { - this.emit('listening', {}) - return this - }) - address = () => { - return { port: 12345 } +jest.mock("net", () => { + return { + createServer() { + return new class MockServer extends EventEmitter { + listen = jest.fn(() => { + this.emit('listening') + return this + }) + address = () => { + return { port: 12345 } + } + unref = jest.fn() + close = jest.fn(cb => cb()) + } + }, } - unref = jest.fn() - close = jest.fn(cb => cb()) -} +}); describe("getFreePort", () => { - beforeEach(() => { - // @ts-ignore - // fixme: find a better way to support types for mocked module - net.createServer.mockReturnValue(new MockServer) - }) - - afterEach(() => { - jest.clearAllMocks() - }) - it("finds the next free port", async () => { return expect(getFreePort()).resolves.toEqual(expect.any(Number)) })