diff --git a/src/renderer/app-update-warning/__tests__/app-publish-date.test.ts b/src/renderer/app-update-warning/__tests__/app-publish-date.test.ts index 6d6507f40d..612215544e 100644 --- a/src/renderer/app-update-warning/__tests__/app-publish-date.test.ts +++ b/src/renderer/app-update-warning/__tests__/app-publish-date.test.ts @@ -3,12 +3,17 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ +import type { DiContainer } from "@ogre-tools/injectable"; import appVersionInjectable from "../../../common/get-configuration-file-model/app-version/app-version.injectable"; import { getDiForUnitTesting } from "../../getDiForUnitTesting"; import appPublishDateInjectable from "../app-publish-date.injectable"; describe("appPublishDate", () => { - const di = getDiForUnitTesting({ doGeneralOverrides: true }); + let di: DiContainer; + + beforeEach(() => { + di = getDiForUnitTesting({ doGeneralOverrides: true }); + }); it("should return empty string if appVersion is not provided", () => { di.override(appVersionInjectable, () => ""); @@ -17,4 +22,28 @@ describe("appPublishDate", () => { expect(appPublishDate).toBe(""); }); + + it("should return empty string if version without date provided", () => { + di.override(appVersionInjectable, () => "5.6.0-alpha.0"); + + const appPublishDate = di.inject(appPublishDateInjectable); + + expect(appPublishDate).toBe(""); + }); + + it("should return empty string if invalid version date provided", () => { + di.override(appVersionInjectable, () => "5.6.0-alpha.2021-23-1.0"); + + const appPublishDate = di.inject(appPublishDateInjectable); + + expect(appPublishDate).toBe(""); + }); + + it("should return proper date if version with date provided", () => { + di.override(appVersionInjectable, () => "5.4.6-latest.20220428.1"); + + const appPublishDate = di.inject(appPublishDateInjectable); + + expect(appPublishDate).toBe("2022-04-28"); + }); }); diff --git a/src/renderer/app-update-warning/app-publish-date.ts b/src/renderer/app-update-warning/app-publish-date.ts index cd08d07a97..a19669017b 100644 --- a/src/renderer/app-update-warning/app-publish-date.ts +++ b/src/renderer/app-update-warning/app-publish-date.ts @@ -3,6 +3,15 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -export function appPublishDate(appVersion: string) { - return ""; +import moment from "moment"; + +export function appPublishDate(appVersion = "") { + const dateFromVersion = appVersion.match(/\d{8}/); + const date = moment(dateFromVersion?.[0], "YYYYMMDD"); + + if (!date.isValid()) { + return ""; + } + + return date.format("YYYY-MM-DD"); }