mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Introduce and use ApplicationBuilder.quit in afterEach() hooks
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
8136e23ac6
commit
f11145045b
@ -56,6 +56,10 @@ describe("app-paths", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("normally", () => {
|
describe("normally", () => {
|
||||||
let windowDi: DiContainer;
|
let windowDi: DiContainer;
|
||||||
let mainDi: DiContainer;
|
let mainDi: DiContainer;
|
||||||
|
|||||||
@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { getGlobalOverride } from "../test-utils/get-global-override";
|
||||||
|
import createReadFileStreamInjectable from "./create-read-file-stream.injectable";
|
||||||
|
|
||||||
|
export default getGlobalOverride(createReadFileStreamInjectable, () => () => {
|
||||||
|
throw new Error("tried to create read stream for a file without override");
|
||||||
|
});
|
||||||
@ -60,6 +60,10 @@ describe("channel", () => {
|
|||||||
messageToChannel = mainDi.inject(sendMessageToChannelInjectionToken);
|
messageToChannel = mainDi.inject(sendMessageToChannelInjectionToken);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given window is started", () => {
|
describe("given window is started", () => {
|
||||||
let someWindowFake: LensWindow;
|
let someWindowFake: LensWindow;
|
||||||
|
|
||||||
@ -103,10 +107,10 @@ describe("channel", () => {
|
|||||||
describe("messaging from renderer to main, given listener for channel in a main and application has started", () => {
|
describe("messaging from renderer to main, given listener for channel in a main and application has started", () => {
|
||||||
let messageListenerInMainMock: jest.Mock;
|
let messageListenerInMainMock: jest.Mock;
|
||||||
let messageToChannel: SendMessageToChannel;
|
let messageToChannel: SendMessageToChannel;
|
||||||
|
let builder: ApplicationBuilder;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
messageListenerInMainMock = jest.fn();
|
messageListenerInMainMock = jest.fn();
|
||||||
|
|
||||||
const testChannelListenerInMainInjectable = getInjectable({
|
const testChannelListenerInMainInjectable = getInjectable({
|
||||||
@ -120,19 +124,23 @@ describe("channel", () => {
|
|||||||
injectionToken: messageChannelListenerInjectionToken,
|
injectionToken: messageChannelListenerInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
applicationBuilder.beforeApplicationStart((mainDi) => {
|
builder.beforeApplicationStart((mainDi) => {
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
mainDi.register(testChannelListenerInMainInjectable);
|
mainDi.register(testChannelListenerInMainInjectable);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
await applicationBuilder.render();
|
await builder.render();
|
||||||
|
|
||||||
const windowDi = applicationBuilder.applicationWindow.only.di;
|
const windowDi = builder.applicationWindow.only.di;
|
||||||
|
|
||||||
messageToChannel = windowDi.inject(sendMessageToChannelInjectionToken);
|
messageToChannel = windowDi.inject(sendMessageToChannelInjectionToken);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("when sending message, triggers listener in main", () => {
|
it("when sending message, triggers listener in main", () => {
|
||||||
messageToChannel(testMessageChannel, "some-message");
|
messageToChannel(testMessageChannel, "some-message");
|
||||||
|
|
||||||
@ -143,10 +151,10 @@ describe("channel", () => {
|
|||||||
describe("requesting from main in renderer, given listener for channel in a main and application has started", () => {
|
describe("requesting from main in renderer, given listener for channel in a main and application has started", () => {
|
||||||
let requestListenerInMainMock: AsyncFnMock<RequestChannelHandler<TestRequestChannel>>;
|
let requestListenerInMainMock: AsyncFnMock<RequestChannelHandler<TestRequestChannel>>;
|
||||||
let requestFromChannel: RequestFromChannel;
|
let requestFromChannel: RequestFromChannel;
|
||||||
|
let builder: ApplicationBuilder;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
requestListenerInMainMock = asyncFn();
|
requestListenerInMainMock = asyncFn();
|
||||||
|
|
||||||
const testChannelListenerInMainInjectable = getRequestChannelListenerInjectable({
|
const testChannelListenerInMainInjectable = getRequestChannelListenerInjectable({
|
||||||
@ -154,19 +162,23 @@ describe("channel", () => {
|
|||||||
handler: () => requestListenerInMainMock,
|
handler: () => requestListenerInMainMock,
|
||||||
});
|
});
|
||||||
|
|
||||||
applicationBuilder.beforeApplicationStart((mainDi) => {
|
builder.beforeApplicationStart((mainDi) => {
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
mainDi.register(testChannelListenerInMainInjectable);
|
mainDi.register(testChannelListenerInMainInjectable);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
await applicationBuilder.render();
|
await builder.render();
|
||||||
|
|
||||||
const windowDi = applicationBuilder.applicationWindow.only.di;
|
const windowDi = builder.applicationWindow.only.di;
|
||||||
|
|
||||||
requestFromChannel = windowDi.inject(requestFromChannelInjectable);
|
requestFromChannel = windowDi.inject(requestFromChannelInjectable);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when requesting from channel", () => {
|
describe("when requesting from channel", () => {
|
||||||
let actualPromise: Promise<string>;
|
let actualPromise: Promise<string>;
|
||||||
|
|
||||||
@ -194,28 +206,38 @@ describe("channel", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("when registering multiple handlers for the same channel, throws", async () => {
|
describe("when registering multiple handlers for the same channel", () => {
|
||||||
const applicationBuilder = getApplicationBuilder();
|
let builder: ApplicationBuilder;
|
||||||
|
|
||||||
const testChannelListenerInMainInjectable = getRequestChannelListenerInjectable({
|
beforeEach(() => {
|
||||||
channel: testRequestChannel,
|
builder = getApplicationBuilder();
|
||||||
handler: () => () => "some-value",
|
|
||||||
});
|
|
||||||
const testChannelListenerInMain2Injectable = getRequestChannelListenerInjectable({
|
|
||||||
channel: testRequestChannel,
|
|
||||||
handler: () => () => "some-other-value",
|
|
||||||
});
|
|
||||||
|
|
||||||
testChannelListenerInMain2Injectable.id += "2";
|
const testChannelListenerInMainInjectable = getRequestChannelListenerInjectable({
|
||||||
|
channel: testRequestChannel,
|
||||||
|
handler: () => () => "some-value",
|
||||||
|
});
|
||||||
|
const testChannelListenerInMain2Injectable = getRequestChannelListenerInjectable({
|
||||||
|
channel: testRequestChannel,
|
||||||
|
handler: () => () => "some-other-value",
|
||||||
|
});
|
||||||
|
|
||||||
applicationBuilder.beforeApplicationStart((mainDi) => {
|
testChannelListenerInMain2Injectable.id += "2";
|
||||||
runInAction(() => {
|
|
||||||
mainDi.register(testChannelListenerInMainInjectable);
|
builder.beforeApplicationStart((mainDi) => {
|
||||||
mainDi.register(testChannelListenerInMain2Injectable);
|
runInAction(() => {
|
||||||
|
mainDi.register(testChannelListenerInMainInjectable);
|
||||||
|
mainDi.register(testChannelListenerInMain2Injectable);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
await expect(applicationBuilder.render()).rejects.toThrow('Tried to register a multiple channel handlers for "some-request-channel-id", only one handler is supported for a request channel.');
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("throws on startup", async () => {
|
||||||
|
await expect(builder.render()).rejects.toThrow('Tried to register a multiple channel handlers for "some-request-channel-id", only one handler is supported for a request channel.');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -12,32 +12,36 @@ import type { SyncBox } from "./sync-box-injection-token";
|
|||||||
import { syncBoxInjectionToken } from "./sync-box-injection-token";
|
import { syncBoxInjectionToken } from "./sync-box-injection-token";
|
||||||
|
|
||||||
describe("sync-box", () => {
|
describe("sync-box", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
applicationBuilder.beforeApplicationStart(mainDi => {
|
builder.beforeApplicationStart(mainDi => {
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
mainDi.register(someInjectable);
|
mainDi.register(someInjectable);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
applicationBuilder.beforeWindowStart((windowDi) => {
|
builder.beforeWindowStart((windowDi) => {
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
windowDi.register(someInjectable);
|
windowDi.register(someInjectable);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given application is started, when value is set in main", () => {
|
describe("given application is started, when value is set in main", () => {
|
||||||
let valueInMain: string;
|
let valueInMain: string;
|
||||||
let syncBoxInMain: SyncBox<string>;
|
let syncBoxInMain: SyncBox<string>;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await applicationBuilder.startHidden();
|
await builder.startHidden();
|
||||||
|
|
||||||
syncBoxInMain = applicationBuilder.mainDi.inject(someInjectable);
|
syncBoxInMain = builder.mainDi.inject(someInjectable);
|
||||||
|
|
||||||
observe(syncBoxInMain.value, ({ newValue }) => {
|
observe(syncBoxInMain.value, ({ newValue }) => {
|
||||||
valueInMain = newValue as string;
|
valueInMain = newValue as string;
|
||||||
@ -59,7 +63,7 @@ describe("sync-box", () => {
|
|||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const applicationWindow =
|
const applicationWindow =
|
||||||
applicationBuilder.applicationWindow.create("some-window-id");
|
builder.applicationWindow.create("some-window-id");
|
||||||
|
|
||||||
await applicationWindow.start();
|
await applicationWindow.start();
|
||||||
|
|
||||||
@ -101,11 +105,11 @@ describe("sync-box", () => {
|
|||||||
let syncBoxInRenderer: SyncBox<string>;
|
let syncBoxInRenderer: SyncBox<string>;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await applicationBuilder.render();
|
await builder.render();
|
||||||
|
|
||||||
const applicationWindow = applicationBuilder.applicationWindow.only;
|
const applicationWindow = builder.applicationWindow.only;
|
||||||
|
|
||||||
syncBoxInMain = applicationBuilder.mainDi.inject(someInjectable);
|
syncBoxInMain = builder.mainDi.inject(someInjectable);
|
||||||
syncBoxInRenderer = applicationWindow.di.inject(someInjectable);
|
syncBoxInRenderer = applicationWindow.di.inject(someInjectable);
|
||||||
|
|
||||||
observe(syncBoxInRenderer.value, ({ newValue }) => {
|
observe(syncBoxInRenderer.value, ({ newValue }) => {
|
||||||
|
|||||||
@ -8,13 +8,17 @@ import type { ApplicationBuilder } from "../../renderer/components/test-utils/ge
|
|||||||
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
||||||
|
|
||||||
describe("add-cluster - navigation using application menu", () => {
|
describe("add-cluster - navigation using application menu", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
@ -28,8 +32,8 @@ describe("add-cluster - navigation using application menu", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe("when navigating to add cluster using application menu", () => {
|
describe("when navigating to add cluster using application menu", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(() => {
|
||||||
await applicationBuilder.applicationMenu.click(
|
builder.applicationMenu.click(
|
||||||
"root",
|
"root",
|
||||||
"file",
|
"file",
|
||||||
"add-cluster",
|
"add-cluster",
|
||||||
|
|||||||
@ -62,6 +62,10 @@ describe("analytics for installing update", () => {
|
|||||||
mainDi = builder.mainDi;
|
mainDi = builder.mainDi;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given application is started and checking updates periodically", () => {
|
describe("given application is started and checking updates periodically", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
mainDi.unoverride(periodicalCheckForUpdatesInjectable);
|
mainDi.unoverride(periodicalCheckForUpdatesInjectable);
|
||||||
|
|||||||
@ -23,7 +23,7 @@ function daysToMilliseconds(days: number) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
describe("encourage user to update when sufficient time passed since update was downloaded", () => {
|
describe("encourage user to update when sufficient time passed since update was downloaded", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let checkForPlatformUpdatesMock: AsyncFnMock<CheckForPlatformUpdates>;
|
let checkForPlatformUpdatesMock: AsyncFnMock<CheckForPlatformUpdates>;
|
||||||
let downloadPlatformUpdateMock: AsyncFnMock<DownloadPlatformUpdate>;
|
let downloadPlatformUpdateMock: AsyncFnMock<DownloadPlatformUpdate>;
|
||||||
let quitAndInstallUpdateMock: jest.MockedFunction<() => void>;
|
let quitAndInstallUpdateMock: jest.MockedFunction<() => void>;
|
||||||
@ -31,9 +31,9 @@ describe("encourage user to update when sufficient time passed since update was
|
|||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
testUsingFakeTime("2015-10-21T07:28:00Z");
|
testUsingFakeTime("2015-10-21T07:28:00Z");
|
||||||
|
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
applicationBuilder.beforeApplicationStart((mainDi) => {
|
builder.beforeApplicationStart((mainDi) => {
|
||||||
checkForPlatformUpdatesMock = asyncFn();
|
checkForPlatformUpdatesMock = asyncFn();
|
||||||
downloadPlatformUpdateMock = asyncFn();
|
downloadPlatformUpdateMock = asyncFn();
|
||||||
|
|
||||||
@ -55,11 +55,15 @@ describe("encourage user to update when sufficient time passed since update was
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when started", () => {
|
describe("when started", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
@ -76,7 +80,7 @@ describe("encourage user to update when sufficient time passed since update was
|
|||||||
let processCheckingForUpdates: (source: string) => Promise<{ updateIsReadyToBeInstalled: boolean }>;
|
let processCheckingForUpdates: (source: string) => Promise<{ updateIsReadyToBeInstalled: boolean }>;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
processCheckingForUpdates = applicationBuilder.mainDi.inject(
|
processCheckingForUpdates = builder.mainDi.inject(
|
||||||
processCheckingForUpdatesInjectable,
|
processCheckingForUpdatesInjectable,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -106,9 +110,9 @@ describe("encourage user to update when sufficient time passed since update was
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("given closing the application window, when starting the application window again, still shows the button", async () => {
|
it("given closing the application window, when starting the application window again, still shows the button", async () => {
|
||||||
applicationBuilder.applicationWindow.closeAll();
|
builder.applicationWindow.closeAll();
|
||||||
|
|
||||||
const window = applicationBuilder.applicationWindow.create("some-window-id");
|
const window = builder.applicationWindow.create("some-window-id");
|
||||||
|
|
||||||
await window.start();
|
await window.start();
|
||||||
|
|
||||||
|
|||||||
@ -43,6 +43,10 @@ describe("installing update using tray", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when started", () => {
|
describe("when started", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@ const TIME_AFTER_UPDATE_MUST_BE_INSTALLED = 1000;
|
|||||||
const TIME_AFTER_INSTALL_STARTS = 5 * 1000;
|
const TIME_AFTER_INSTALL_STARTS = 5 * 1000;
|
||||||
|
|
||||||
describe("force user to update when too long since update was downloaded", () => {
|
describe("force user to update when too long since update was downloaded", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let checkForPlatformUpdatesMock: AsyncFnMock<CheckForPlatformUpdates>;
|
let checkForPlatformUpdatesMock: AsyncFnMock<CheckForPlatformUpdates>;
|
||||||
let downloadPlatformUpdateMock: AsyncFnMock<DownloadPlatformUpdate>;
|
let downloadPlatformUpdateMock: AsyncFnMock<DownloadPlatformUpdate>;
|
||||||
let mainDi: DiContainer;
|
let mainDi: DiContainer;
|
||||||
@ -33,9 +33,9 @@ describe("force user to update when too long since update was downloaded", () =>
|
|||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
testUsingFakeTime("2015-10-21T07:28:00Z");
|
testUsingFakeTime("2015-10-21T07:28:00Z");
|
||||||
|
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
applicationBuilder.beforeApplicationStart(mainDi => {
|
builder.beforeApplicationStart(mainDi => {
|
||||||
checkForPlatformUpdatesMock = asyncFn();
|
checkForPlatformUpdatesMock = asyncFn();
|
||||||
|
|
||||||
mainDi.override(checkForPlatformUpdatesInjectable, () => checkForPlatformUpdatesMock);
|
mainDi.override(checkForPlatformUpdatesInjectable, () => checkForPlatformUpdatesMock);
|
||||||
@ -49,7 +49,7 @@ describe("force user to update when too long since update was downloaded", () =>
|
|||||||
mainDi.override(quitAndInstallUpdateInjectable, () => quitAndInstallUpdateMock);
|
mainDi.override(quitAndInstallUpdateInjectable, () => quitAndInstallUpdateMock);
|
||||||
});
|
});
|
||||||
|
|
||||||
applicationBuilder.beforeWindowStart(windowDi => {
|
builder.beforeWindowStart(windowDi => {
|
||||||
windowDi.unoverride(forceUpdateModalRootFrameComponentInjectable);
|
windowDi.unoverride(forceUpdateModalRootFrameComponentInjectable);
|
||||||
windowDi.permitSideEffects(forceUpdateModalRootFrameComponentInjectable);
|
windowDi.permitSideEffects(forceUpdateModalRootFrameComponentInjectable);
|
||||||
|
|
||||||
@ -57,14 +57,18 @@ describe("force user to update when too long since update was downloaded", () =>
|
|||||||
windowDi.override(secondsAfterInstallStartsInjectable, () => TIME_AFTER_INSTALL_STARTS / 1000);
|
windowDi.override(secondsAfterInstallStartsInjectable, () => TIME_AFTER_INSTALL_STARTS / 1000);
|
||||||
});
|
});
|
||||||
|
|
||||||
mainDi = applicationBuilder.mainDi;
|
mainDi = builder.mainDi;
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("when application is started", () => {
|
describe("when application is started", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("given checking for updates and it resolves, when update was downloaded", () => {
|
describe("given checking for updates and it resolves, when update was downloaded", () => {
|
||||||
|
|||||||
@ -35,6 +35,10 @@ describe("periodical checking of updates", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given updater is enabled and configuration exists, when started", () => {
|
describe("given updater is enabled and configuration exists, when started", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
|
|||||||
@ -73,6 +73,10 @@ describe("selection of update stability", () => {
|
|||||||
mainDi = builder.mainDi;
|
mainDi = builder.mainDi;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when started", () => {
|
describe("when started", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let processCheckingForUpdates: (source: string) => Promise<{ updateIsReadyToBeInstalled: boolean }>;
|
let processCheckingForUpdates: (source: string) => Promise<{ updateIsReadyToBeInstalled: boolean }>;
|
||||||
|
|||||||
@ -17,14 +17,14 @@ import { updateChannels } from "./common/update-channels";
|
|||||||
import getBuildVersionInjectable from "../../main/vars/build-version/get-build-version.injectable";
|
import getBuildVersionInjectable from "../../main/vars/build-version/get-build-version.injectable";
|
||||||
|
|
||||||
describe("downgrading version update", () => {
|
describe("downgrading version update", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let checkForPlatformUpdatesMock: AsyncFnMock<CheckForPlatformUpdates>;
|
let checkForPlatformUpdatesMock: AsyncFnMock<CheckForPlatformUpdates>;
|
||||||
let mainDi: DiContainer;
|
let mainDi: DiContainer;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
applicationBuilder.beforeApplicationStart(mainDi => {
|
builder.beforeApplicationStart(mainDi => {
|
||||||
checkForPlatformUpdatesMock = asyncFn();
|
checkForPlatformUpdatesMock = asyncFn();
|
||||||
|
|
||||||
mainDi.override(
|
mainDi.override(
|
||||||
@ -36,7 +36,11 @@ describe("downgrading version update", () => {
|
|||||||
mainDi.override(publishIsConfiguredInjectable, () => true);
|
mainDi.override(publishIsConfiguredInjectable, () => true);
|
||||||
});
|
});
|
||||||
|
|
||||||
mainDi = applicationBuilder.mainDi;
|
mainDi = builder.mainDi;
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
[
|
[
|
||||||
@ -104,7 +108,7 @@ describe("downgrading version update", () => {
|
|||||||
it(`given application version "${appVersion}" and update channel "${updateChannel.id}", when checking for updates, can${downgradeIsAllowed ? "": "not"} downgrade`, async () => {
|
it(`given application version "${appVersion}" and update channel "${updateChannel.id}", when checking for updates, can${downgradeIsAllowed ? "": "not"} downgrade`, async () => {
|
||||||
mainDi.override(getBuildVersionInjectable, () => () => appVersion);
|
mainDi.override(getBuildVersionInjectable, () => () => appVersion);
|
||||||
|
|
||||||
await applicationBuilder.render();
|
await builder.render();
|
||||||
|
|
||||||
const selectedUpdateChannel = mainDi.inject(selectedUpdateChannelInjectable);
|
const selectedUpdateChannel = mainDi.inject(selectedUpdateChannelInjectable);
|
||||||
|
|
||||||
|
|||||||
@ -61,6 +61,10 @@ describe("installing update", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when started", () => {
|
describe("when started", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let processCheckingForUpdates: (source: string) => Promise<{ updateIsReadyToBeInstalled: boolean }>;
|
let processCheckingForUpdates: (source: string) => Promise<{ updateIsReadyToBeInstalled: boolean }>;
|
||||||
|
|||||||
@ -104,6 +104,10 @@ describe("Deleting a cluster", () => {
|
|||||||
rendered = await builder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when the kubeconfig has multiple clusters", () => {
|
describe("when the kubeconfig has multiple clusters", () => {
|
||||||
let currentCluster: Cluster;
|
let currentCluster: Cluster;
|
||||||
let nonCurrentCluster: Cluster;
|
let nonCurrentCluster: Cluster;
|
||||||
|
|||||||
@ -47,6 +47,10 @@ describe("disable-cluster-pages-when-cluster-is-not-relevant", () => {
|
|||||||
builder.extensions.get("test-extension-id").applicationWindows.only;
|
builder.extensions.get("test-extension-id").applicationWindows.only;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given not yet known if extension should be enabled for the cluster, when navigating", () => {
|
describe("given not yet known if extension should be enabled for the cluster, when navigating", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
rendererTestExtension.navigate();
|
rendererTestExtension.navigate();
|
||||||
|
|||||||
@ -53,6 +53,10 @@ describe("disable sidebar items when cluster is not relevant", () => {
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given not yet known if extension should be enabled for the cluster", () => {
|
describe("given not yet known if extension should be enabled for the cluster", () => {
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.baseElement).toMatchSnapshot();
|
expect(rendered.baseElement).toMatchSnapshot();
|
||||||
|
|||||||
@ -46,6 +46,10 @@ describe("reactively disable cluster pages", () => {
|
|||||||
builder.extensions.get("test-extension-id").applicationWindows.only;
|
builder.extensions.get("test-extension-id").applicationWindows.only;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("when navigating to the page, does not show the page", () => {
|
it("when navigating to the page, does not show the page", () => {
|
||||||
testExtensionInstance.navigate();
|
testExtensionInstance.navigate();
|
||||||
|
|
||||||
|
|||||||
@ -75,6 +75,10 @@ describe("disable kube object detail items when cluster is not relevant", () =>
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given not yet known if extension should be enabled for the cluster", () => {
|
describe("given not yet known if extension should be enabled for the cluster", () => {
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.baseElement).toMatchSnapshot();
|
expect(rendered.baseElement).toMatchSnapshot();
|
||||||
|
|||||||
@ -74,6 +74,11 @@ describe("reactively hide kube object detail item", () => {
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.baseElement).toMatchSnapshot();
|
expect(rendered.baseElement).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
|||||||
@ -70,6 +70,10 @@ describe("disable kube object menu items when cluster is not relevant", () => {
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given not yet known if extension should be enabled for the cluster", () => {
|
describe("given not yet known if extension should be enabled for the cluster", () => {
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.baseElement).toMatchSnapshot();
|
expect(rendered.baseElement).toMatchSnapshot();
|
||||||
|
|||||||
@ -66,6 +66,10 @@ describe("reactively hide kube object menu item", () => {
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("does not show the kube object menu item", () => {
|
it("does not show the kube object menu item", () => {
|
||||||
const actual = rendered.queryByTestId("some-kube-object-menu-item");
|
const actual = rendered.queryByTestId("some-kube-object-menu-item");
|
||||||
|
|
||||||
|
|||||||
@ -71,6 +71,10 @@ describe("disable kube object statuses when cluster is not relevant", () => {
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given not yet known if extension should be enabled for the cluster", () => {
|
describe("given not yet known if extension should be enabled for the cluster", () => {
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.baseElement).toMatchSnapshot();
|
expect(rendered.baseElement).toMatchSnapshot();
|
||||||
|
|||||||
@ -67,6 +67,10 @@ describe("reactively hide kube object status", () => {
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("does not show the kube object status", () => {
|
it("does not show the kube object status", () => {
|
||||||
const actual = rendered.baseElement.querySelectorAll(
|
const actual = rendered.baseElement.querySelectorAll(
|
||||||
".KubeObjectStatusIcon",
|
".KubeObjectStatusIcon",
|
||||||
|
|||||||
@ -110,6 +110,10 @@ describe("show status for a kube object", () => {
|
|||||||
builder.setEnvironmentToClusterFrame();
|
builder.setEnvironmentToClusterFrame();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given application starts and in test page", () => {
|
describe("given application starts and in test page", () => {
|
||||||
let windowDi: DiContainer;
|
let windowDi: DiContainer;
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|||||||
@ -70,6 +70,10 @@ describe("cluster/namespaces - edit namespace from new tab", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when navigating to namespaces", () => {
|
describe("when navigating to namespaces", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let windowDi: DiContainer;
|
let windowDi: DiContainer;
|
||||||
|
|||||||
@ -41,6 +41,10 @@ describe("cluster/namespaces - edit namespaces from previously opened tab", () =
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given tab was previously opened, when application is started", () => {
|
describe("given tab was previously opened, when application is started", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,10 @@ describe("cluster - order of sidebar items", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when rendered", () => {
|
describe("when rendered", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
rendered = await builder.render();
|
rendered = await builder.render();
|
||||||
|
|||||||
@ -40,6 +40,10 @@ describe("cluster - sidebar and tab navigation for core", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given core registrations", () => {
|
describe("given core registrations", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
builder.beforeWindowStart((windowDi) => {
|
builder.beforeWindowStart((windowDi) => {
|
||||||
|
|||||||
@ -23,17 +23,17 @@ import type { DiContainer } from "@ogre-tools/injectable";
|
|||||||
import { flushPromises } from "../../common/test-utils/flush-promises";
|
import { flushPromises } from "../../common/test-utils/flush-promises";
|
||||||
|
|
||||||
describe("cluster - sidebar and tab navigation for extensions", () => {
|
describe("cluster - sidebar and tab navigation for extensions", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
testUsingFakeTime("2015-10-21T07:28:00Z");
|
testUsingFakeTime("2015-10-21T07:28:00Z");
|
||||||
|
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
applicationBuilder.setEnvironmentToClusterFrame();
|
builder.setEnvironmentToClusterFrame();
|
||||||
|
|
||||||
applicationBuilder.beforeWindowStart((windowDi) => {
|
builder.beforeWindowStart((windowDi) => {
|
||||||
windowDi.override(storageSaveDelayInjectable, () => 250);
|
windowDi.override(storageSaveDelayInjectable, () => 250);
|
||||||
|
|
||||||
windowDi.override(
|
windowDi.override(
|
||||||
@ -43,6 +43,10 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given extension with cluster pages and cluster page menus", () => {
|
describe("given extension with cluster pages and cluster page menus", () => {
|
||||||
let someObservable: IObservableValue<boolean>;
|
let someObservable: IObservableValue<boolean>;
|
||||||
|
|
||||||
@ -125,14 +129,14 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
applicationBuilder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("given no state for expanded sidebar items exists, and navigated to child sidebar item, when rendered", () => {
|
describe("given no state for expanded sidebar items exists, and navigated to child sidebar item, when rendered", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
|
|
||||||
const windowDi = applicationBuilder.applicationWindow.only.di;
|
const windowDi = builder.applicationWindow.only.di;
|
||||||
|
|
||||||
const navigateToRoute = windowDi.inject(navigateToRouteInjectionToken);
|
const navigateToRoute = windowDi.inject(navigateToRouteInjectionToken);
|
||||||
|
|
||||||
@ -173,7 +177,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
|||||||
|
|
||||||
describe("given state for expanded sidebar items already exists, when rendered", () => {
|
describe("given state for expanded sidebar items already exists, when rendered", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder.beforeWindowStart(async (windowDi) => {
|
builder.beforeWindowStart(async (windowDi) => {
|
||||||
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
||||||
|
|
||||||
await writeJsonFileFake(
|
await writeJsonFileFake(
|
||||||
@ -187,7 +191,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
@ -209,7 +213,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
|||||||
|
|
||||||
describe("given state for expanded unknown sidebar items already exists, when rendered", () => {
|
describe("given state for expanded unknown sidebar items already exists, when rendered", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder.beforeWindowStart(async (windowDi) => {
|
builder.beforeWindowStart(async (windowDi) => {
|
||||||
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
||||||
|
|
||||||
await writeJsonFileFake(
|
await writeJsonFileFake(
|
||||||
@ -223,7 +227,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders without errors", () => {
|
it("renders without errors", () => {
|
||||||
@ -239,7 +243,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
|||||||
|
|
||||||
describe("given empty state for expanded sidebar items already exists, when rendered", () => {
|
describe("given empty state for expanded sidebar items already exists, when rendered", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder.beforeWindowStart(async (windowDi) => {
|
builder.beforeWindowStart(async (windowDi) => {
|
||||||
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
||||||
|
|
||||||
await writeJsonFileFake(
|
await writeJsonFileFake(
|
||||||
@ -250,7 +254,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders without errors", () => {
|
it("renders without errors", () => {
|
||||||
@ -268,9 +272,9 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
|||||||
let windowDi: DiContainer;
|
let windowDi: DiContainer;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
|
|
||||||
windowDi = applicationBuilder.applicationWindow.only.di;
|
windowDi = builder.applicationWindow.only.di;
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
|
|||||||
@ -33,6 +33,10 @@ describe("cluster - visibility of sidebar items", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given kube resource for route is not allowed", () => {
|
describe("given kube resource for route is not allowed", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
rendered = await builder.render();
|
rendered = await builder.render();
|
||||||
|
|||||||
@ -57,6 +57,10 @@ describe("disable workloads overview details when cluster is not relevant", () =
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given not yet known if extension should be enabled for the cluster", () => {
|
describe("given not yet known if extension should be enabled for the cluster", () => {
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.baseElement).toMatchSnapshot();
|
expect(rendered.baseElement).toMatchSnapshot();
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
* 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 { RenderResult } from "@testing-library/react";
|
import type { RenderResult } from "@testing-library/react";
|
||||||
|
import type { ApplicationBuilder } from "../../../../../renderer/components/test-utils/get-application-builder";
|
||||||
import { getApplicationBuilder } from "../../../../../renderer/components/test-utils/get-application-builder";
|
import { getApplicationBuilder } from "../../../../../renderer/components/test-utils/get-application-builder";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import getRandomIdInjectable from "../../../../../common/utils/get-random-id.injectable";
|
import getRandomIdInjectable from "../../../../../common/utils/get-random-id.injectable";
|
||||||
@ -12,9 +13,10 @@ import { computed, runInAction } from "mobx";
|
|||||||
|
|
||||||
describe("order of workload overview details", () => {
|
describe("order of workload overview details", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
let builder: ApplicationBuilder;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
builder.beforeWindowStart((windowDi) => {
|
builder.beforeWindowStart((windowDi) => {
|
||||||
windowDi.unoverride(getRandomIdInjectable);
|
windowDi.unoverride(getRandomIdInjectable);
|
||||||
@ -78,6 +80,10 @@ describe("order of workload overview details", () => {
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("shows items in correct order", () => {
|
it("shows items in correct order", () => {
|
||||||
const actual = rendered.queryAllByTestId("workload-overview-detail").map(x => x.id);
|
const actual = rendered.queryAllByTestId("workload-overview-detail").map(x => x.id);
|
||||||
|
|
||||||
|
|||||||
@ -54,6 +54,10 @@ describe("reactively hide workloads overview details item", () => {
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("does not show the workload overview detail item", () => {
|
it("does not show the workload overview detail item", () => {
|
||||||
const actual = rendered.queryByTestId("some-workload-overview-detail-item");
|
const actual = rendered.queryByTestId("some-workload-overview-detail-item");
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,10 @@ describe("Command Pallet: keyboard shortcut tests", () => {
|
|||||||
builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when on macOS", () => {
|
describe("when on macOS", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
builder.beforeWindowStart((windowDi) => {
|
builder.beforeWindowStart((windowDi) => {
|
||||||
|
|||||||
@ -25,6 +25,10 @@ describe("extension special characters in page registrations", () => {
|
|||||||
windowDi = builder.applicationWindow.only.di;
|
windowDi = builder.applicationWindow.only.di;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.container).toMatchSnapshot();
|
expect(rendered.container).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
|||||||
@ -28,6 +28,10 @@ describe("extensions - navigation using application menu", () => {
|
|||||||
rendered = await builder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.container).toMatchSnapshot();
|
expect(rendered.container).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
|||||||
@ -58,6 +58,10 @@ describe("add custom helm repository in preferences", () => {
|
|||||||
rendered = await builder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when navigating to preferences containing helm repositories", () => {
|
describe("when navigating to preferences containing helm repositories", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
builder.preferences.navigate();
|
builder.preferences.navigate();
|
||||||
|
|||||||
@ -50,6 +50,10 @@ describe("add helm repository from list in preferences", () => {
|
|||||||
rendered = await builder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when navigating to preferences containing helm repositories", () => {
|
describe("when navigating to preferences containing helm repositories", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
builder.preferences.navigate();
|
builder.preferences.navigate();
|
||||||
|
|||||||
@ -71,6 +71,10 @@ describe("installing helm chart from new tab", () => {
|
|||||||
builder.namespaces.add("some-other-namespace");
|
builder.namespaces.add("some-other-namespace");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given tab for installing chart was not previously opened and application is started", () => {
|
describe("given tab for installing chart was not previously opened and application is started", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let windowDi: DiContainer;
|
let windowDi: DiContainer;
|
||||||
|
|||||||
@ -48,6 +48,10 @@ describe("installing helm chart from previously opened tab", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given tab for installing chart was previously opened, when application is started", () => {
|
describe("given tab for installing chart was previously opened, when application is started", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
|
|||||||
@ -56,6 +56,10 @@ describe("opening dock tab for installing helm chart", () => {
|
|||||||
builder.setEnvironmentToClusterFrame();
|
builder.setEnvironmentToClusterFrame();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given application is started, when navigating to helm charts", () => {
|
describe("given application is started, when navigating to helm charts", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
|
|||||||
@ -56,6 +56,10 @@ describe("listing active helm repositories in preferences", () => {
|
|||||||
rendered = await builder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when navigating to preferences containing helm repositories", () => {
|
describe("when navigating to preferences containing helm repositories", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
builder.preferences.navigate();
|
builder.preferences.navigate();
|
||||||
|
|||||||
@ -41,6 +41,10 @@ describe("remove helm repository from list of active repositories in preferences
|
|||||||
rendered = await builder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when navigating to preferences containing helm repositories", () => {
|
describe("when navigating to preferences containing helm repositories", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
builder.preferences.navigate();
|
builder.preferences.navigate();
|
||||||
|
|||||||
@ -64,6 +64,10 @@ describe("New Upgrade Helm Chart Dock Tab", () => {
|
|||||||
dockStore.closeTab("terminal");
|
dockStore.closeTab("terminal");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given a namespace is selected", () => {
|
describe("given a namespace is selected", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
builder.namespaces.select("my-second-namespace");
|
builder.namespaces.select("my-second-namespace");
|
||||||
|
|||||||
@ -83,6 +83,10 @@ describe("showing details for helm release", () => {
|
|||||||
builder.namespaces.select("some-other-namespace");
|
builder.namespaces.select("some-other-namespace");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given application is started", () => {
|
describe("given application is started", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import isEmpty from "lodash/isEmpty";
|
|||||||
import queryParametersInjectable from "../renderer/routes/query-parameters.injectable";
|
import queryParametersInjectable from "../renderer/routes/query-parameters.injectable";
|
||||||
import currentPathInjectable from "../renderer/routes/current-path.injectable";
|
import currentPathInjectable from "../renderer/routes/current-path.injectable";
|
||||||
import type { IComputedValue } from "mobx";
|
import type { IComputedValue } from "mobx";
|
||||||
|
import type { ApplicationBuilder } from "../renderer/components/test-utils/get-application-builder";
|
||||||
import { getApplicationBuilder } from "../renderer/components/test-utils/get-application-builder";
|
import { getApplicationBuilder } from "../renderer/components/test-utils/get-application-builder";
|
||||||
import type { FakeExtensionOptions } from "../renderer/components/test-utils/get-extension-fake";
|
import type { FakeExtensionOptions } from "../renderer/components/test-utils/get-extension-fake";
|
||||||
import type { LensRendererExtension } from "../extensions/lens-renderer-extension";
|
import type { LensRendererExtension } from "../extensions/lens-renderer-extension";
|
||||||
@ -18,9 +19,10 @@ describe("navigate to extension page", () => {
|
|||||||
let testExtension: LensRendererExtension;
|
let testExtension: LensRendererExtension;
|
||||||
let queryParameters: IComputedValue<object>;
|
let queryParameters: IComputedValue<object>;
|
||||||
let currentPath: IComputedValue<string>;
|
let currentPath: IComputedValue<string>;
|
||||||
|
let builder: ApplicationBuilder;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
builder.extensions.enable(extensionWithPagesHavingParameters);
|
builder.extensions.enable(extensionWithPagesHavingParameters);
|
||||||
|
|
||||||
@ -35,6 +37,10 @@ describe("navigate to extension page", () => {
|
|||||||
currentPath = windowDi.inject(currentPathInjectable);
|
currentPath = windowDi.inject(currentPathInjectable);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.container).toMatchSnapshot();
|
expect(rendered.container).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
|||||||
@ -27,6 +27,10 @@ describe("navigating between routes", () => {
|
|||||||
builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given route without path parameters", () => {
|
describe("given route without path parameters", () => {
|
||||||
let windowDi: DiContainer;
|
let windowDi: DiContainer;
|
||||||
|
|
||||||
|
|||||||
@ -95,11 +95,15 @@ describe("download logs options in logs dock tab", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("opening pod logs", () => {
|
describe("opening pod logs", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
rendered = await builder.render();
|
rendered = await builder.render();
|
||||||
windowDi = builder.applicationWindow.only.di;
|
windowDi = builder.applicationWindow.only.di;
|
||||||
|
|
||||||
const dockStore = windowDi.inject(dockStoreInjectable);
|
const dockStore = windowDi.inject(dockStoreInjectable);
|
||||||
|
|
||||||
dockStore.closeTab("terminal");
|
dockStore.closeTab("terminal");
|
||||||
@ -108,10 +112,10 @@ describe("download logs options in logs dock tab", () => {
|
|||||||
describe("when logs not available", () => {
|
describe("when logs not available", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const createLogsTab = windowDi.inject(createPodLogsTabInjectable);
|
const createLogsTab = windowDi.inject(createPodLogsTabInjectable);
|
||||||
|
|
||||||
getLogsMock.mockReturnValue([]);
|
getLogsMock.mockReturnValue([]);
|
||||||
getSplittedLogsMock.mockReturnValue([]);
|
getSplittedLogsMock.mockReturnValue([]);
|
||||||
|
|
||||||
createLogsTab({
|
createLogsTab({
|
||||||
selectedPod: pod,
|
selectedPod: pod,
|
||||||
selectedContainer: container,
|
selectedContainer: container,
|
||||||
@ -132,10 +136,10 @@ describe("download logs options in logs dock tab", () => {
|
|||||||
describe("when logs available", () => {
|
describe("when logs available", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const createLogsTab = windowDi.inject(createPodLogsTabInjectable);
|
const createLogsTab = windowDi.inject(createPodLogsTabInjectable);
|
||||||
|
|
||||||
getLogsMock.mockReturnValue(["some-logs"]);
|
getLogsMock.mockReturnValue(["some-logs"]);
|
||||||
getSplittedLogsMock.mockReturnValue([...logs]);
|
getSplittedLogsMock.mockReturnValue([...logs]);
|
||||||
|
|
||||||
createLogsTab({
|
createLogsTab({
|
||||||
selectedPod: pod,
|
selectedPod: pod,
|
||||||
selectedContainer: container,
|
selectedContainer: container,
|
||||||
@ -157,7 +161,7 @@ describe("download logs options in logs dock tab", () => {
|
|||||||
describe("when clicking on dropdown", () => {
|
describe("when clicking on dropdown", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
const button = rendered.getByTestId("download-logs-dropdown");
|
const button = rendered.getByTestId("download-logs-dropdown");
|
||||||
|
|
||||||
act(() => button.click());
|
act(() => button.click());
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -182,7 +186,7 @@ describe("download logs options in logs dock tab", () => {
|
|||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
const button = rendered.getByTestId("download-all-logs");
|
const button = rendered.getByTestId("download-all-logs");
|
||||||
|
|
||||||
button.click();
|
button.click();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -193,11 +197,11 @@ describe("download logs options in logs dock tab", () => {
|
|||||||
{ "previous": true, "timestamps": false },
|
{ "previous": true, "timestamps": false },
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("shows save dialog with proper attributes", async () => {
|
it("shows save dialog with proper attributes", async () => {
|
||||||
expect(openSaveFileDialogMock).toHaveBeenCalledWith("dockerExporter.log", "all-logs", "text/plain");
|
expect(openSaveFileDialogMock).toHaveBeenCalledWith("dockerExporter.log", "all-logs", "text/plain");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("doesn't block download dropdown for interaction after click", async () => {
|
it("doesn't block download dropdown for interaction after click", async () => {
|
||||||
expect(rendered.getByTestId("download-logs-dropdown")).not.toHaveAttribute("disabled");
|
expect(rendered.getByTestId("download-logs-dropdown")).not.toHaveAttribute("disabled");
|
||||||
});
|
});
|
||||||
@ -206,19 +210,19 @@ describe("download logs options in logs dock tab", () => {
|
|||||||
describe("blocking user interaction after menu item click", () => {
|
describe("blocking user interaction after menu item click", () => {
|
||||||
it("block download dropdown for interaction when selected 'download all logs'", async () => {
|
it("block download dropdown for interaction when selected 'download all logs'", async () => {
|
||||||
const downloadMenuItem = rendered.getByTestId("download-all-logs");
|
const downloadMenuItem = rendered.getByTestId("download-all-logs");
|
||||||
|
|
||||||
act(() => downloadMenuItem.click());
|
act(() => downloadMenuItem.click());
|
||||||
|
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(rendered.getByTestId("download-logs-dropdown")).toHaveAttribute("disabled");
|
expect(rendered.getByTestId("download-logs-dropdown")).toHaveAttribute("disabled");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("doesn't block dropdown for interaction when selected 'download visible logs'", () => {
|
it("doesn't block dropdown for interaction when selected 'download visible logs'", () => {
|
||||||
const downloadMenuItem = rendered.getByTestId("download-visible-logs");
|
const downloadMenuItem = rendered.getByTestId("download-visible-logs");
|
||||||
|
|
||||||
act(() => downloadMenuItem.click());
|
act(() => downloadMenuItem.click());
|
||||||
|
|
||||||
expect(rendered.getByTestId("download-logs-dropdown")).not.toHaveAttribute("disabled");
|
expect(rendered.getByTestId("download-logs-dropdown")).not.toHaveAttribute("disabled");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -233,7 +237,7 @@ describe("download logs options in logs dock tab", () => {
|
|||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
const button = rendered.getByTestId("download-all-logs");
|
const button = rendered.getByTestId("download-all-logs");
|
||||||
|
|
||||||
button.click();
|
button.click();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -241,7 +245,7 @@ describe("download logs options in logs dock tab", () => {
|
|||||||
it("doesn't show save dialog", () => {
|
it("doesn't show save dialog", () => {
|
||||||
expect(openSaveFileDialogMock).not.toHaveBeenCalled();
|
expect(openSaveFileDialogMock).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("shows error notification", () => {
|
it("shows error notification", () => {
|
||||||
expect(showErrorNotificationMock).toHaveBeenCalled();
|
expect(showErrorNotificationMock).toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
@ -252,23 +256,23 @@ describe("download logs options in logs dock tab", () => {
|
|||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
callForLogsMock.mockRejectedValue("error");
|
callForLogsMock.mockRejectedValue("error");
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("when selected 'download all logs'", () => {
|
describe("when selected 'download all logs'", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
const button = rendered.getByTestId("download-all-logs");
|
const button = rendered.getByTestId("download-all-logs");
|
||||||
|
|
||||||
button.click();
|
button.click();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("logs have been called", () => {
|
it("logs have been called", () => {
|
||||||
expect(callForLogsMock).toHaveBeenCalledWith(
|
expect(callForLogsMock).toHaveBeenCalledWith(
|
||||||
{ name: "dockerExporter", namespace: "default" },
|
{ name: "dockerExporter", namespace: "default" },
|
||||||
{ "previous": true, "timestamps": false },
|
{ "previous": true, "timestamps": false },
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("doesn't show save dialog", async () => {
|
it("doesn't show save dialog", async () => {
|
||||||
expect(openSaveFileDialogMock).not.toHaveBeenCalled();
|
expect(openSaveFileDialogMock).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|||||||
@ -49,6 +49,10 @@ describe("preferences - closing-preferences", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given already in a page and then navigated to preferences", () => {
|
describe("given already in a page and then navigated to preferences", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let windowDi: DiContainer;
|
let windowDi: DiContainer;
|
||||||
|
|||||||
@ -18,6 +18,10 @@ describe("preferences: extension adding preference tabs", () => {
|
|||||||
builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given in preferences, when extension with preference tabs is enabled", () => {
|
describe("given in preferences, when extension with preference tabs is enabled", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let someObservable: IObservableValue<boolean>;
|
let someObservable: IObservableValue<boolean>;
|
||||||
|
|||||||
@ -18,6 +18,10 @@ describe("preferences - navigation to application preferences", () => {
|
|||||||
builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given in preferences, when rendered", () => {
|
describe("given in preferences, when rendered", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let discover: Discover;
|
let discover: Discover;
|
||||||
@ -57,8 +61,7 @@ describe("preferences - navigation to application preferences", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("shows preference items of the extension as last", () => {
|
it("shows preference items of the extension as last", () => {
|
||||||
const { attributeValues } =
|
const { attributeValues } = discover.queryAllElements("preference-item");
|
||||||
discover.queryAllElements("preference-item");
|
|
||||||
|
|
||||||
expect(attributeValues.at(-1)).toBe("preference-item-for-extension-some-test-extension-name-item-some-application-preference-item-id");
|
expect(attributeValues.at(-1)).toBe("preference-item-for-extension-some-test-extension-name-item-some-application-preference-item-id");
|
||||||
});
|
});
|
||||||
|
|||||||
@ -9,23 +9,26 @@ import type { Discover } from "../../renderer/components/test-utils/discovery-of
|
|||||||
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
||||||
|
|
||||||
describe("preferences - navigation to editor preferences", () => {
|
describe("preferences - navigation to editor preferences", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let discover: Discover;
|
let discover: Discover;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("given in preferences, when rendered", () => {
|
describe("given in preferences, when rendered", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder.beforeWindowStart(() => {
|
builder.beforeWindowStart(() => {
|
||||||
applicationBuilder.preferences.navigate();
|
builder.preferences.navigate();
|
||||||
});
|
});
|
||||||
|
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
|
|
||||||
discover = discoverFor(() => rendered);
|
discover = discoverFor(() => rendered);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -43,7 +46,7 @@ describe("preferences - navigation to editor preferences", () => {
|
|||||||
|
|
||||||
describe("when navigating to editor preferences using navigation", () => {
|
describe("when navigating to editor preferences using navigation", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder.preferences.navigation.click("editor");
|
builder.preferences.navigation.click("editor");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
|
|||||||
@ -19,6 +19,10 @@ describe("preferences - navigation to extension specific preferences", () => {
|
|||||||
builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given in preferences, when rendered", () => {
|
describe("given in preferences, when rendered", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let logErrorMock: jest.Mock;
|
let logErrorMock: jest.Mock;
|
||||||
|
|||||||
@ -17,6 +17,10 @@ describe("preferences - navigation to kubernetes preferences", () => {
|
|||||||
builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given in preferences, when rendered", () => {
|
describe("given in preferences, when rendered", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let discover: Discover;
|
let discover: Discover;
|
||||||
|
|||||||
@ -9,10 +9,14 @@ import type { Discover } from "../../renderer/components/test-utils/discovery-of
|
|||||||
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
||||||
|
|
||||||
describe("preferences - navigation to proxy preferences", () => {
|
describe("preferences - navigation to proxy preferences", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("given in preferences, when rendered", () => {
|
describe("given in preferences, when rendered", () => {
|
||||||
@ -20,11 +24,11 @@ describe("preferences - navigation to proxy preferences", () => {
|
|||||||
let discover: Discover;
|
let discover: Discover;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder.beforeWindowStart(() => {
|
builder.beforeWindowStart(() => {
|
||||||
applicationBuilder.preferences.navigate();
|
builder.preferences.navigate();
|
||||||
});
|
});
|
||||||
|
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
discover = discoverFor(() => rendered);
|
discover = discoverFor(() => rendered);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -43,7 +47,7 @@ describe("preferences - navigation to proxy preferences", () => {
|
|||||||
|
|
||||||
describe("when navigating to proxy preferences using navigation", () => {
|
describe("when navigating to proxy preferences using navigation", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder.preferences.navigation.click("proxy");
|
builder.preferences.navigation.click("proxy");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
|
|||||||
@ -19,6 +19,10 @@ describe("preferences - navigation to telemetry preferences", () => {
|
|||||||
builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given in preferences, when rendered", () => {
|
describe("given in preferences, when rendered", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let discover: Discover;
|
let discover: Discover;
|
||||||
|
|||||||
@ -9,10 +9,14 @@ import type { Discover } from "../../renderer/components/test-utils/discovery-of
|
|||||||
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
||||||
|
|
||||||
describe("preferences - navigation to terminal preferences", () => {
|
describe("preferences - navigation to terminal preferences", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("given in preferences, when rendered", () => {
|
describe("given in preferences, when rendered", () => {
|
||||||
@ -20,12 +24,11 @@ describe("preferences - navigation to terminal preferences", () => {
|
|||||||
let discover: Discover;
|
let discover: Discover;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder.beforeWindowStart(() => {
|
builder.beforeWindowStart(() => {
|
||||||
applicationBuilder.preferences.navigate();
|
builder.preferences.navigate();
|
||||||
});
|
});
|
||||||
|
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
|
|
||||||
discover = discoverFor(() => rendered);
|
discover = discoverFor(() => rendered);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -44,7 +47,7 @@ describe("preferences - navigation to terminal preferences", () => {
|
|||||||
|
|
||||||
describe("when navigating to terminal preferences using navigation", () => {
|
describe("when navigating to terminal preferences using navigation", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder.preferences.navigation.click("terminal");
|
builder.preferences.navigation.click("terminal");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
|
|||||||
@ -10,17 +10,21 @@ import type { Discover } from "../../renderer/components/test-utils/discovery-of
|
|||||||
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
||||||
|
|
||||||
describe("preferences - navigation using application menu", () => {
|
describe("preferences - navigation using application menu", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let discover: Discover;
|
let discover: Discover;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
discover = discoverFor(() => rendered);
|
discover = discoverFor(() => rendered);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.container).toMatchSnapshot();
|
expect(rendered.container).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
@ -36,7 +40,7 @@ describe("preferences - navigation using application menu", () => {
|
|||||||
|
|
||||||
describe("when navigating to preferences using application menu", () => {
|
describe("when navigating to preferences using application menu", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder.applicationMenu.click(
|
builder.applicationMenu.click(
|
||||||
"root",
|
"root",
|
||||||
"mac",
|
"mac",
|
||||||
"navigate-to-preferences",
|
"navigate-to-preferences",
|
||||||
|
|||||||
@ -9,17 +9,21 @@ import type { Discover } from "../../renderer/components/test-utils/discovery-of
|
|||||||
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
|
||||||
|
|
||||||
describe("show-about-using-tray", () => {
|
describe("show-about-using-tray", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let discover: Discover;
|
let discover: Discover;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
discover = discoverFor(() => rendered);
|
discover = discoverFor(() => rendered);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
expect(rendered.baseElement).toMatchSnapshot();
|
expect(rendered.baseElement).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
@ -35,7 +39,7 @@ describe("show-about-using-tray", () => {
|
|||||||
|
|
||||||
describe("when navigating using tray", () => {
|
describe("when navigating using tray", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await applicationBuilder.tray.click("open-preferences");
|
await builder.tray.click("open-preferences");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
|
|||||||
@ -75,6 +75,10 @@ describe("opening application window using tray", () => {
|
|||||||
await builder.render();
|
await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("only the first application window is open", () => {
|
it("only the first application window is open", () => {
|
||||||
expectWindowsToBeOpen(["first-application-window"]);
|
expectWindowsToBeOpen(["first-application-window"]);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -37,6 +37,10 @@ describe("quitting the app using application menu", () => {
|
|||||||
await builder.render();
|
await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("first application window is open", () => {
|
it("first application window is open", () => {
|
||||||
const windows = builder.applicationWindow.getAll();
|
const windows = builder.applicationWindow.getAll();
|
||||||
|
|
||||||
|
|||||||
@ -31,6 +31,10 @@ describe("resolve-system-proxy", () => {
|
|||||||
await builder.render();
|
await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given in main, when called with URL", () => {
|
describe("given in main, when called with URL", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const resolveSystemProxyInMain = builder.mainDi.inject(
|
const resolveSystemProxyInMain = builder.mainDi.inject(
|
||||||
|
|||||||
@ -43,6 +43,10 @@ describe("reactively disable global pages", () => {
|
|||||||
rendererTestExtension = builder.extensions.get("test-extension-id").applicationWindows.only;
|
rendererTestExtension = builder.extensions.get("test-extension-id").applicationWindows.only;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("when navigating to the page, does not show the page", () => {
|
it("when navigating to the page, does not show the page", () => {
|
||||||
rendererTestExtension.navigate();
|
rendererTestExtension.navigate();
|
||||||
|
|
||||||
|
|||||||
@ -11,22 +11,26 @@ import type { FakeExtensionOptions } from "../../renderer/components/test-utils/
|
|||||||
import { computed } from "mobx";
|
import { computed } from "mobx";
|
||||||
|
|
||||||
describe("status-bar-items-originating-from-extensions", () => {
|
describe("status-bar-items-originating-from-extensions", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
applicationBuilder.beforeWindowStart((windowDi) => {
|
builder.beforeWindowStart((windowDi) => {
|
||||||
windowDi.unoverride(getRandomIdInjectable);
|
windowDi.unoverride(getRandomIdInjectable);
|
||||||
windowDi.permitSideEffects(getRandomIdInjectable);
|
windowDi.permitSideEffects(getRandomIdInjectable);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when application starts", () => {
|
describe("when application starts", () => {
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("when multiple extensions with status bar items are loaded, shows items in correct order", () => {
|
it("when multiple extensions with status bar items are loaded, shows items in correct order", () => {
|
||||||
@ -62,7 +66,7 @@ describe("status-bar-items-originating-from-extensions", () => {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
applicationBuilder.extensions.enable(testExtension1, testExtension2);
|
builder.extensions.enable(testExtension1, testExtension2);
|
||||||
|
|
||||||
const rightSide = rendered.getByTestId("status-bar-right");
|
const rightSide = rendered.getByTestId("status-bar-right");
|
||||||
|
|
||||||
@ -119,7 +123,7 @@ describe("status-bar-items-originating-from-extensions", () => {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
applicationBuilder.extensions.enable(testExtensionOptions);
|
builder.extensions.enable(testExtensionOptions);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
@ -153,7 +157,7 @@ describe("status-bar-items-originating-from-extensions", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("when the extension is removed, shows there are no extension status bar items", () => {
|
it("when the extension is removed, shows there are no extension status bar items", () => {
|
||||||
applicationBuilder.extensions.disable(testExtensionOptions);
|
builder.extensions.disable(testExtensionOptions);
|
||||||
|
|
||||||
const actual = rendered.queryAllByTestId("some-testId");
|
const actual = rendered.queryAllByTestId("some-testId");
|
||||||
|
|
||||||
|
|||||||
@ -545,7 +545,7 @@ exports[`test for opening terminal tab within cluster frame when new terminal ta
|
|||||||
<span
|
<span
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
class="xterm-char-measure-element"
|
class="xterm-char-measure-element"
|
||||||
style="font-size: 42px;"
|
style="font-family: RobotoMono; font-size: 12px;"
|
||||||
>
|
>
|
||||||
W
|
W
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@ -32,6 +32,10 @@ describe("test for opening terminal tab within cluster frame", () => {
|
|||||||
result = await builder.render();
|
result = await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when new terminal tab is opened", () => {
|
describe("when new terminal tab is opened", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
result.getByTestId("dock-tab-for-terminal").click();
|
result.getByTestId("dock-tab-for-terminal").click();
|
||||||
|
|||||||
@ -25,6 +25,10 @@ describe("clicking tray menu item originating from extension", () => {
|
|||||||
await builder.render();
|
await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("when extension is enabled", () => {
|
describe("when extension is enabled", () => {
|
||||||
let someExtension: FakeExtensionOptions;
|
let someExtension: FakeExtensionOptions;
|
||||||
let clickMock: jest.Mock;
|
let clickMock: jest.Mock;
|
||||||
|
|||||||
@ -85,6 +85,10 @@ describe("preferences: extension adding tray items", () => {
|
|||||||
builder.extensions.enable(testExtension);
|
builder.extensions.enable(testExtension);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
describe("given controlled label", () => {
|
describe("given controlled label", () => {
|
||||||
it("has the label", () => {
|
it("has the label", () => {
|
||||||
const item = builder.tray.get(
|
const item = builder.tray.get(
|
||||||
|
|||||||
@ -20,6 +20,10 @@ describe("multiple separators originating from extension", () => {
|
|||||||
await builder.render();
|
await builder.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("given extension with multiple separators, when extension is enabled, does not throw", () => {
|
it("given extension with multiple separators, when extension is enabled, does not throw", () => {
|
||||||
const someExtension = {
|
const someExtension = {
|
||||||
id: "some-extension-id",
|
id: "some-extension-id",
|
||||||
|
|||||||
@ -8,13 +8,17 @@ import type { ApplicationBuilder } from "../../renderer/components/test-utils/ge
|
|||||||
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
||||||
|
|
||||||
describe("welcome - navigation using application menu", () => {
|
describe("welcome - navigation using application menu", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
@ -29,7 +33,7 @@ describe("welcome - navigation using application menu", () => {
|
|||||||
|
|
||||||
describe("when navigated somewhere else", () => {
|
describe("when navigated somewhere else", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder.applicationMenu.click(
|
builder.applicationMenu.click(
|
||||||
"root",
|
"root",
|
||||||
"mac",
|
"mac",
|
||||||
"navigate-to-preferences",
|
"navigate-to-preferences",
|
||||||
@ -48,7 +52,7 @@ describe("welcome - navigation using application menu", () => {
|
|||||||
|
|
||||||
describe("when navigated to welcome using application menu", () => {
|
describe("when navigated to welcome using application menu", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder.applicationMenu.click(
|
builder.applicationMenu.click(
|
||||||
"root",
|
"root",
|
||||||
"help",
|
"help",
|
||||||
"navigate-to-welcome",
|
"navigate-to-welcome",
|
||||||
|
|||||||
@ -14,29 +14,33 @@ import type { Route } from "../../common/front-end-routing/front-end-route-injec
|
|||||||
|
|
||||||
|
|
||||||
describe("setting-welcome-page", () => {
|
describe("setting-welcome-page", () => {
|
||||||
let applicationBuilder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let rendered : RenderResult;
|
let rendered : RenderResult;
|
||||||
let welcomeRoute: Route;
|
let welcomeRoute: Route;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
applicationBuilder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("given configuration of welcome page route is the default", () => {
|
describe("given configuration of welcome page route is the default", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder.beforeApplicationStart((mainDi) => {
|
builder.beforeApplicationStart((mainDi) => {
|
||||||
mainDi.override(welcomeRouteConfigInjectable, () => "/welcome");
|
mainDi.override(welcomeRouteConfigInjectable, () => "/welcome");
|
||||||
});
|
});
|
||||||
|
|
||||||
applicationBuilder.beforeWindowStart((windowDi) => {
|
builder.beforeWindowStart((windowDi) => {
|
||||||
windowDi.override(welcomeRouteConfigInjectable, () => "/welcome");
|
windowDi.override(welcomeRouteConfigInjectable, () => "/welcome");
|
||||||
});
|
});
|
||||||
|
|
||||||
// enable the extension even though the welcomeRoute is not overriden
|
// enable the extension even though the welcomeRoute is not overriden
|
||||||
applicationBuilder.extensions.enable(extensionWithWelcomePage);
|
builder.extensions.enable(extensionWithWelcomePage);
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
|
|
||||||
const windowDi = applicationBuilder.applicationWindow.only.di;
|
const windowDi = builder.applicationWindow.only.di;
|
||||||
|
|
||||||
welcomeRoute = windowDi.inject(welcomeRouteInjectable);
|
welcomeRoute = windowDi.inject(welcomeRouteInjectable);
|
||||||
});
|
});
|
||||||
@ -54,18 +58,18 @@ describe("setting-welcome-page", () => {
|
|||||||
|
|
||||||
describe("given configuration of welcome page route is set to a custom page", () => {
|
describe("given configuration of welcome page route is set to a custom page", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
applicationBuilder.beforeApplicationStart((mainDi) => {
|
builder.beforeApplicationStart((mainDi) => {
|
||||||
mainDi.override(welcomeRouteConfigInjectable, () => "/extension/some-extension-name/some-welcome-page");
|
mainDi.override(welcomeRouteConfigInjectable, () => "/extension/some-extension-name/some-welcome-page");
|
||||||
});
|
});
|
||||||
|
|
||||||
applicationBuilder.beforeWindowStart((windowDi) => {
|
builder.beforeWindowStart((windowDi) => {
|
||||||
windowDi.override(welcomeRouteConfigInjectable, () => "/extension/some-extension-name/some-welcome-page");
|
windowDi.override(welcomeRouteConfigInjectable, () => "/extension/some-extension-name/some-welcome-page");
|
||||||
});
|
});
|
||||||
|
|
||||||
applicationBuilder.extensions.enable(extensionWithWelcomePage);
|
builder.extensions.enable(extensionWithWelcomePage);
|
||||||
rendered = await applicationBuilder.render();
|
rendered = await builder.render();
|
||||||
|
|
||||||
const windowDi = applicationBuilder.applicationWindow.only.di;
|
const windowDi = builder.applicationWindow.only.di;
|
||||||
|
|
||||||
welcomeRoute = windowDi.inject(welcomeRouteInjectable);
|
welcomeRoute = windowDi.inject(welcomeRouteInjectable);
|
||||||
});
|
});
|
||||||
|
|||||||
24
src/main/lens-proxy/stop-proxy-on-quit.injectable.ts
Normal file
24
src/main/lens-proxy/stop-proxy-on-quit.injectable.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import { beforeQuitOfBackEndInjectionToken } from "../start-main-application/runnable-tokens/before-quit-of-back-end-injection-token";
|
||||||
|
import lensProxyInjectable from "./lens-proxy.injectable";
|
||||||
|
|
||||||
|
const stopLensProxyOnQuitInjectable = getInjectable({
|
||||||
|
id: "stop-lens-proxy-on-quit",
|
||||||
|
instantiate: (di) => {
|
||||||
|
const lensProxy = di.inject(lensProxyInjectable);
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: "stop-lens-proxy",
|
||||||
|
run: () => {
|
||||||
|
lensProxy.close();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
injectionToken: beforeQuitOfBackEndInjectionToken,
|
||||||
|
});
|
||||||
|
|
||||||
|
export default stopLensProxyOnQuitInjectable;
|
||||||
@ -82,8 +82,6 @@ const setupLensProxyInjectable = getInjectable({
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
// causesSideEffects: true,
|
|
||||||
|
|
||||||
injectionToken: beforeApplicationIsLoadingInjectionToken,
|
injectionToken: beforeApplicationIsLoadingInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -176,6 +176,7 @@ export class Terminal {
|
|||||||
};
|
};
|
||||||
|
|
||||||
onClear = () => {
|
onClear = () => {
|
||||||
|
console.log("clearing");
|
||||||
this.xterm.clear();
|
this.xterm.clear();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -39,6 +39,10 @@ describe("<StatusBar />", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
builder.quit();
|
||||||
|
});
|
||||||
|
|
||||||
it("renders w/o errors", async () => {
|
it("renders w/o errors", async () => {
|
||||||
const { container } = await builder.render();
|
const { container } = await builder.render();
|
||||||
|
|
||||||
|
|||||||
@ -71,6 +71,8 @@ import createClusterInjectable from "../../../main/create-cluster/create-cluster
|
|||||||
import { onLoadOfApplicationInjectionToken } from "../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
import { onLoadOfApplicationInjectionToken } from "../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
|
||||||
import currentLocationInjectable from "../../api/current-location.injectable";
|
import currentLocationInjectable from "../../api/current-location.injectable";
|
||||||
import lensProxyPortInjectable from "../../../main/lens-proxy/lens-proxy-port.injectable";
|
import lensProxyPortInjectable from "../../../main/lens-proxy/lens-proxy-port.injectable";
|
||||||
|
import { runManyFor } from "../../../common/runnable/run-many-for";
|
||||||
|
import { beforeQuitOfBackEndInjectionToken } from "../../../main/start-main-application/runnable-tokens/before-quit-of-back-end-injection-token";
|
||||||
|
|
||||||
type Callback = (di: DiContainer) => void | Promise<void>;
|
type Callback = (di: DiContainer) => void | Promise<void>;
|
||||||
|
|
||||||
@ -122,6 +124,7 @@ export interface ApplicationBuilder {
|
|||||||
|
|
||||||
startHidden: () => Promise<void>;
|
startHidden: () => Promise<void>;
|
||||||
render: () => Promise<RenderResult>;
|
render: () => Promise<RenderResult>;
|
||||||
|
quit: () => void;
|
||||||
|
|
||||||
tray: {
|
tray: {
|
||||||
click: (id: string) => Promise<void>;
|
click: (id: string) => Promise<void>;
|
||||||
@ -703,6 +706,13 @@ export const getApplicationBuilder = () => {
|
|||||||
await startApplication({ shouldStartHidden: true });
|
await startApplication({ shouldStartHidden: true });
|
||||||
},
|
},
|
||||||
|
|
||||||
|
quit() {
|
||||||
|
const runMany = runManyFor(builder.mainDi);
|
||||||
|
const beforeQuitOfBackEnd = runMany(beforeQuitOfBackEndInjectionToken);
|
||||||
|
|
||||||
|
beforeQuitOfBackEnd();
|
||||||
|
},
|
||||||
|
|
||||||
async render() {
|
async render() {
|
||||||
await startApplication({ shouldStartHidden: false });
|
await startApplication({ shouldStartHidden: false });
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user