diff --git a/src/common/k8s-api/window-location.global-override-for-injectable.ts b/src/common/k8s-api/window-location.global-override-for-injectable.ts
new file mode 100644
index 0000000000..616e110c88
--- /dev/null
+++ b/src/common/k8s-api/window-location.global-override-for-injectable.ts
@@ -0,0 +1,12 @@
+/**
+ * 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 windowLocationInjectable from "./window-location.injectable";
+
+export default getGlobalOverride(windowLocationInjectable, () => ({
+ host: "localhost",
+ port: "12345",
+}));
diff --git a/src/common/utils/date/get-milliseconds-from-unix-epoch.injectable.ts b/src/common/utils/date/get-milliseconds-from-unix-epoch.injectable.ts
index 4179e14276..69a839ec65 100644
--- a/src/common/utils/date/get-milliseconds-from-unix-epoch.injectable.ts
+++ b/src/common/utils/date/get-milliseconds-from-unix-epoch.injectable.ts
@@ -5,7 +5,7 @@
import { getInjectable } from "@ogre-tools/injectable";
const getMillisecondsFromUnixEpochInjectable = getInjectable({
- id: "get-current-time",
+ id: "get-milliseconds-from-unix-epoch",
instantiate: () => () => Date.now(),
causesSideEffects: true,
});
diff --git a/src/renderer/components/test-utils/get-application-builder.tsx b/src/renderer/components/test-utils/get-application-builder.tsx
index f7e28c7b81..652b13889f 100644
--- a/src/renderer/components/test-utils/get-application-builder.tsx
+++ b/src/renderer/components/test-utils/get-application-builder.tsx
@@ -57,6 +57,7 @@ import activeKubernetesClusterInjectable from "../../cluster-frame-context/activ
import { catalogEntityFromCluster } from "../../../main/cluster/manager";
import namespaceStoreInjectable from "../+namespaces/store.injectable";
import { isAllowedResource } from "../../../common/cluster/is-allowed-resource";
+import getMillisecondsFromUnixEpochInjectable from "../../../common/utils/date/get-milliseconds-from-unix-epoch.injectable";
import createApplicationWindowInjectable from "../../../main/start-main-application/lens-window/application-window/create-application-window.injectable";
import type { CreateElectronWindow } from "../../../main/start-main-application/lens-window/application-window/create-electron-window.injectable";
import createElectronWindowInjectable from "../../../main/start-main-application/lens-window/application-window/create-electron-window.injectable";
@@ -112,7 +113,12 @@ export interface ApplicationBuilder {
applicationMenu: {
click: (path: string) => void;
};
-
+ time: {
+ advanceBy: {
+ seconds: (value: number) => void;
+ milliseconds: (value: number) => void;
+ };
+ };
preferences: {
close: () => void;
navigate: () => void;
@@ -189,6 +195,7 @@ export const getApplicationBuilder = () => {
runInAction(() => {
windowDi.register(rendererExtensionsStateInjectable);
});
+ windowDi.override(getMillisecondsFromUnixEpochInjectable, () => () => currentTimeMs);
windowDi.override(
currentlyInClusterFrameInjectable,
@@ -244,10 +251,22 @@ export const getApplicationBuilder = () => {
mainDi.override(createElectronWindowInjectable, () => createElectronWindowFake);
let applicationHasStarted = false;
+ let currentTimeMs = Date.parse("2000-01-01 12:00:00am");
+
+ mainDi.override(getMillisecondsFromUnixEpochInjectable, () => () => currentTimeMs);
const builder: ApplicationBuilder = {
mainDi,
-
+ time: {
+ advanceBy: {
+ milliseconds: (value) => {
+ currentTimeMs += value;
+ },
+ seconds: (value) => {
+ currentTimeMs += (value * 1000);
+ },
+ },
+ },
applicationWindow: {
closeAll: () => {
const closeAll = mainDi.inject(closeAllWindowsInjectable);
diff --git a/src/renderer/frames/cluster-frame/cluster-frame.test.tsx b/src/renderer/frames/cluster-frame/cluster-frame.test.tsx
index 5ec0d0894f..3308f3871f 100644
--- a/src/renderer/frames/cluster-frame/cluster-frame.test.tsx
+++ b/src/renderer/frames/cluster-frame/cluster-frame.test.tsx
@@ -24,6 +24,7 @@ import currentRouteComponentInjectable from "../../routes/current-route-componen
import allowedResourcesInjectable from "../../cluster-frame-context/allowed-resources.injectable";
import hostedClusterIdInjectable from "../../cluster-frame-context/hosted-cluster-id.injectable";
import hostedClusterInjectable from "../../cluster-frame-context/hosted-cluster.injectable";
+import getMillisecondsFromUnixEpochInjectable from "../../../common/utils/date/get-milliseconds-from-unix-epoch.injectable";
describe("", () => {
let render: () => RenderResult;
@@ -44,6 +45,7 @@ describe("", () => {
di.override(legacyOnChannelListenInjectable, () => jest.fn().mockImplementation(() => jest.fn()));
di.override(directoryForUserDataInjectable, () => "/some/irrelavent/path");
di.override(storesAndApisCanBeCreatedInjectable, () => true);
+ di.override(getMillisecondsFromUnixEpochInjectable, () => () => Date.parse("2000-01-01 12:00:00am"));
const createCluster = di.inject(createClusterInjectable);