diff --git a/src/common/k8s-api/endpoints/metrics.api/request-metrics.injectable.ts b/src/common/k8s-api/endpoints/metrics.api/request-metrics.injectable.ts
index 946d1e3dda..0da0bc95ec 100644
--- a/src/common/k8s-api/endpoints/metrics.api/request-metrics.injectable.ts
+++ b/src/common/k8s-api/endpoints/metrics.api/request-metrics.injectable.ts
@@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
-import getSecondsFromUnixEpochInjectable from "../../../utils/date/get-seconds-from-unix-epoch.injectable";
+import { getSecondsFromUnixEpoch } from "../../../utils/date/get-current-date-time";
import { apiBaseInjectionToken } from "../../api-base";
import type { MetricData } from "../metrics.api";
@@ -47,7 +47,6 @@ const requestMetricsInjectable = getInjectable({
id: "request-metrics",
instantiate: (di) => {
const apiBase = di.inject(apiBaseInjectionToken);
- const getSecondsFromUnixEpoch = di.inject(getSecondsFromUnixEpochInjectable);
return (async (query: object, params: RequestMetricsParams = {}) => {
const { range = 3600, step = 60, namespace } = params;
diff --git a/src/common/utils/date/get-current-date-time.ts b/src/common/utils/date/get-current-date-time.ts
index bf3df2bd78..aa4d5e7fa3 100644
--- a/src/common/utils/date/get-current-date-time.ts
+++ b/src/common/utils/date/get-current-date-time.ts
@@ -5,3 +5,7 @@
import moment from "moment";
export const getCurrentDateTime = () => moment().utc().format();
+
+export const getMillisecondsFromUnixEpoch = () => Date.now();
+
+export const getSecondsFromUnixEpoch = () => Math.floor(getMillisecondsFromUnixEpoch() / 1000);
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
deleted file mode 100644
index 69a839ec65..0000000000
--- a/src/common/utils/date/get-milliseconds-from-unix-epoch.injectable.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * 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";
-
-const getMillisecondsFromUnixEpochInjectable = getInjectable({
- id: "get-milliseconds-from-unix-epoch",
- instantiate: () => () => Date.now(),
- causesSideEffects: true,
-});
-
-export default getMillisecondsFromUnixEpochInjectable;
diff --git a/src/common/utils/date/get-seconds-from-unix-epoch.injectable.ts b/src/common/utils/date/get-seconds-from-unix-epoch.injectable.ts
deleted file mode 100644
index 35a077c3f2..0000000000
--- a/src/common/utils/date/get-seconds-from-unix-epoch.injectable.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * 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 getMillisecondsFromUnixEpochInjectable from "./get-milliseconds-from-unix-epoch.injectable";
-
-const getSecondsFromUnixEpochInjectable = getInjectable({
- id: "get-seconds-from-unix-epoch",
- instantiate: (di) => {
- const getMilisecondsFromUnixEpoch = di.inject(getMillisecondsFromUnixEpochInjectable);
-
- return () => Math.floor(getMilisecondsFromUnixEpoch() / 1000);
- },
-});
-
-export default getSecondsFromUnixEpochInjectable;
diff --git a/src/renderer/components/+helm-releases/to-helm-release.injectable.ts b/src/renderer/components/+helm-releases/to-helm-release.injectable.ts
index c47b58c538..d8b27625e6 100644
--- a/src/renderer/components/+helm-releases/to-helm-release.injectable.ts
+++ b/src/renderer/components/+helm-releases/to-helm-release.injectable.ts
@@ -7,7 +7,7 @@ import { capitalize } from "lodash";
import { when } from "mobx";
import helmChartVersionsInjectable from "../+helm-charts/helm-charts/versions.injectable";
import type { HelmRelease, HelmReleaseDto } from "../../../common/k8s-api/endpoints/helm-releases.api";
-import getMillisecondsFromUnixEpochInjectable from "../../../common/utils/date/get-milliseconds-from-unix-epoch.injectable";
+import { getMillisecondsFromUnixEpoch } from "../../../common/utils/date/get-current-date-time";
import { formatDuration } from "../../utils";
export type ToHelmRelease = (release: HelmReleaseDto) => HelmRelease;
@@ -16,7 +16,6 @@ const toHelmReleaseInjectable = getInjectable({
id: "to-helm-release",
instantiate: (di): ToHelmRelease => {
const helmChartVersions = (release: HelmRelease) => di.inject(helmChartVersionsInjectable, release);
- const getMillisecondsFromUnixEpoch = di.inject(getMillisecondsFromUnixEpochInjectable);
return (release) => ({
...release,
diff --git a/src/renderer/components/test-utils/get-application-builder.tsx b/src/renderer/components/test-utils/get-application-builder.tsx
index 652b13889f..91a4b45394 100644
--- a/src/renderer/components/test-utils/get-application-builder.tsx
+++ b/src/renderer/components/test-utils/get-application-builder.tsx
@@ -57,7 +57,6 @@ 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";
@@ -113,12 +112,6 @@ export interface ApplicationBuilder {
applicationMenu: {
click: (path: string) => void;
};
- time: {
- advanceBy: {
- seconds: (value: number) => void;
- milliseconds: (value: number) => void;
- };
- };
preferences: {
close: () => void;
navigate: () => void;
@@ -195,7 +188,6 @@ export const getApplicationBuilder = () => {
runInAction(() => {
windowDi.register(rendererExtensionsStateInjectable);
});
- windowDi.override(getMillisecondsFromUnixEpochInjectable, () => () => currentTimeMs);
windowDi.override(
currentlyInClusterFrameInjectable,
@@ -251,22 +243,9 @@ 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 3308f3871f..bee7d3a415 100644
--- a/src/renderer/frames/cluster-frame/cluster-frame.test.tsx
+++ b/src/renderer/frames/cluster-frame/cluster-frame.test.tsx
@@ -24,7 +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";
+import { useFakeTime } from "../../../common/test-utils/use-fake-time";
describe("", () => {
let render: () => RenderResult;
@@ -45,7 +45,8 @@ 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"));
+
+ useFakeTime("2000-01-01 12:00:00am");
const createCluster = di.inject(createClusterInjectable);
diff --git a/src/renderer/ipc/list-namespaces-forbidden-handler.injectable.tsx b/src/renderer/ipc/list-namespaces-forbidden-handler.injectable.tsx
index 9129a014db..6ee14d7857 100644
--- a/src/renderer/ipc/list-namespaces-forbidden-handler.injectable.tsx
+++ b/src/renderer/ipc/list-namespaces-forbidden-handler.injectable.tsx
@@ -11,7 +11,7 @@ import { Button } from "../components/button";
import type { IpcRendererEvent } from "electron";
import React from "react";
import notificationsStoreInjectable from "../components/notifications/notifications-store.injectable";
-import getMillisecondsFromUnixEpochInjectable from "../../common/utils/date/get-milliseconds-from-unix-epoch.injectable";
+import { getMillisecondsFromUnixEpoch } from "../../common/utils/date/get-current-date-time";
const listNamespacesForbiddenHandlerInjectable = getInjectable({
id: "list-namespaces-forbidden-handler",
@@ -19,7 +19,6 @@ const listNamespacesForbiddenHandlerInjectable = getInjectable({
instantiate: (di) => {
const navigateToEntitySettings = di.inject(navigateToEntitySettingsInjectable);
const notificationsStore = di.inject(notificationsStoreInjectable);
- const getMillisecondsFromUnixEpoch = di.inject(getMillisecondsFromUnixEpochInjectable);
const notificationLastDisplayedAt = new Map();
const intervalBetweenNotifications = 1000 * 60; // 60s