From 6411b225c0cc42fdf6381ce659615c28666d8c8e Mon Sep 17 00:00:00 2001 From: Iku-turso Date: Mon, 30 May 2022 14:44:29 +0300 Subject: [PATCH] Make a primitive argument an object for readability Co-authored-by: Janne Savolainen Signed-off-by: Iku-turso --- .../installing-update-using-tray.test.ts | 2 +- .../progress-of-update-download.injectable.ts | 6 +++++- .../check-for-updates-tray-item.injectable.ts | 2 +- .../download-platform-update.injectable.ts | 8 +++++--- .../download-platform-update.test.ts | 9 +++++---- .../download-update/download-update.injectable.ts | 7 ++++--- 6 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/behaviours/application-update/installing-update-using-tray.test.ts b/src/behaviours/application-update/installing-update-using-tray.test.ts index 83640b1a73..ad5d8cb44d 100644 --- a/src/behaviours/application-update/installing-update-using-tray.test.ts +++ b/src/behaviours/application-update/installing-update-using-tray.test.ts @@ -159,7 +159,7 @@ describe("installing update using tray", () => { progressOfUpdateDownloadInjectable, ); - progressOfUpdateDownload.set(42); + progressOfUpdateDownload.set({ percentage: 42 }); expect( applicationBuilder.tray.get("check-for-updates")?.label?.get(), diff --git a/src/common/application-update/progress-of-update-download/progress-of-update-download.injectable.ts b/src/common/application-update/progress-of-update-download/progress-of-update-download.injectable.ts index 7c21031f49..7e4104a112 100644 --- a/src/common/application-update/progress-of-update-download/progress-of-update-download.injectable.ts +++ b/src/common/application-update/progress-of-update-download/progress-of-update-download.injectable.ts @@ -6,13 +6,17 @@ import { getInjectable } from "@ogre-tools/injectable"; import createSyncBoxInjectable from "../../sync-box/create-sync-box.injectable"; import { syncBoxInjectionToken } from "../../sync-box/sync-box-injection-token"; +export interface ProgressOfDownload { + percentage: number; +} + const progressOfUpdateDownloadInjectable = getInjectable({ id: "progress-of-update-download-state", instantiate: (di) => { const createSyncBox = di.inject(createSyncBoxInjectable); - return createSyncBox("progress-of-update-download", 0); + return createSyncBox("progress-of-update-download", { percentage: 0 }); }, injectionToken: syncBoxInjectionToken, diff --git a/src/main/application-update/check-for-updates-tray-item.injectable.ts b/src/main/application-update/check-for-updates-tray-item.injectable.ts index 3354d908c9..14b9de155d 100644 --- a/src/main/application-update/check-for-updates-tray-item.injectable.ts +++ b/src/main/application-update/check-for-updates-tray-item.injectable.ts @@ -41,7 +41,7 @@ const checkForUpdatesTrayItemInjectable = getInjectable({ assert(discoveredVersion); - return `Downloading update ${discoveredVersion.version} (${progressOfUpdateDownload.value.get()}%)...`; + return `Downloading update ${discoveredVersion.version} (${progressOfUpdateDownload.value.get().percentage}%)...`; } if (checkingForUpdatesState.value.get()) { diff --git a/src/main/application-update/download-platform-update/download-platform-update.injectable.ts b/src/main/application-update/download-platform-update/download-platform-update.injectable.ts index a8981fa89d..374efd2caf 100644 --- a/src/main/application-update/download-platform-update/download-platform-update.injectable.ts +++ b/src/main/application-update/download-platform-update/download-platform-update.injectable.ts @@ -6,9 +6,10 @@ import { getInjectable } from "@ogre-tools/injectable"; import electronUpdaterInjectable from "../../electron-app/features/electron-updater.injectable"; import loggerInjectable from "../../../common/logger.injectable"; import type { ProgressInfo } from "electron-updater"; +import type { ProgressOfDownload } from "../../../common/application-update/progress-of-update-download/progress-of-update-download.injectable"; export type DownloadPlatformUpdate = ( - onDownloadProgress: (percentage: number) => void + onDownloadProgress: (arg: ProgressOfDownload) => void ) => Promise<{ downloadWasSuccessful: boolean }>; const downloadPlatformUpdateInjectable = getInjectable({ @@ -19,9 +20,10 @@ const downloadPlatformUpdateInjectable = getInjectable({ const logger = di.inject(loggerInjectable); return async (onDownloadProgress) => { - onDownloadProgress(0); + onDownloadProgress({ percentage: 0 }); - const updateDownloadProgress = ({ percent }: ProgressInfo) => onDownloadProgress(percent); + const updateDownloadProgress = ({ percent: percentage }: ProgressInfo) => + onDownloadProgress({ percentage }); electronUpdater.on("download-progress", updateDownloadProgress); diff --git a/src/main/application-update/download-platform-update/download-platform-update.test.ts b/src/main/application-update/download-platform-update/download-platform-update.test.ts index df088e6bab..04507be980 100644 --- a/src/main/application-update/download-platform-update/download-platform-update.test.ts +++ b/src/main/application-update/download-platform-update/download-platform-update.test.ts @@ -4,6 +4,7 @@ */ import { getDiForUnitTesting } from "../../getDiForUnitTesting"; import electronUpdaterInjectable from "../../electron-app/features/electron-updater.injectable"; +import type { DownloadPlatformUpdate } from "./download-platform-update.injectable"; import downloadPlatformUpdateInjectable from "./download-platform-update.injectable"; import type { AppUpdater } from "electron-updater"; import type { AsyncFnMock } from "@async-fn/jest"; @@ -14,7 +15,7 @@ import loggerInjectable from "../../../common/logger.injectable"; import type { Logger } from "../../../common/logger"; describe("download-platform-update", () => { - let downloadPlatformUpdate: (onDownloadProgress: (percentage: number) => void) => Promise<{ downloadWasSuccessful: boolean }>; + let downloadPlatformUpdate: DownloadPlatformUpdate; let downloadUpdateMock: AsyncFnMock<() => void>; let electronUpdaterFake: AppUpdater; let electronUpdaterOnMock: jest.Mock; @@ -68,7 +69,7 @@ describe("download-platform-update", () => { }); it("starts progress of download from 0", () => { - expect(onDownloadProgressMock).toHaveBeenCalledWith(0); + expect(onDownloadProgressMock).toHaveBeenCalledWith({ percentage: 0 }); }); describe("when downloading progresses", () => { @@ -89,7 +90,7 @@ describe("download-platform-update", () => { }); it("updates progress of the download", () => { - expect(onDownloadProgressMock).toHaveBeenCalledWith(42); + expect(onDownloadProgressMock).toHaveBeenCalledWith({ percentage: 42 }); }); describe("when downloading resolves", () => { @@ -119,7 +120,7 @@ describe("download-platform-update", () => { it("when starting download again, resets progress of download", () => { downloadPlatformUpdate(onDownloadProgressMock); - expect(onDownloadProgressMock).toHaveBeenCalledWith(0); + expect(onDownloadProgressMock).toHaveBeenCalledWith({ percentage: 0 }); }); }); diff --git a/src/main/application-update/download-update/download-update.injectable.ts b/src/main/application-update/download-update/download-update.injectable.ts index 4abbd3185f..d0ac141b9c 100644 --- a/src/main/application-update/download-update/download-update.injectable.ts +++ b/src/main/application-update/download-update/download-update.injectable.ts @@ -7,6 +7,7 @@ import downloadPlatformUpdateInjectable from "../download-platform-update/downlo import updateIsBeingDownloadedInjectable from "../../../common/application-update/update-is-being-downloaded/update-is-being-downloaded.injectable"; import discoveredUpdateVersionInjectable from "../../../common/application-update/discovered-update-version/discovered-update-version.injectable"; import { action, runInAction } from "mobx"; +import type { ProgressOfDownload } from "../../../common/application-update/progress-of-update-download/progress-of-update-download.injectable"; import progressOfUpdateDownloadInjectable from "../../../common/application-update/progress-of-update-download/progress-of-update-download.injectable"; const downloadUpdateInjectable = getInjectable({ @@ -18,13 +19,13 @@ const downloadUpdateInjectable = getInjectable({ const discoveredVersionState = di.inject(discoveredUpdateVersionInjectable); const progressOfUpdateDownload = di.inject(progressOfUpdateDownloadInjectable); - const updateDownloadProgress = action((percentage: number) => { - progressOfUpdateDownload.set(percentage); + const updateDownloadProgress = action((progressOfDownload: ProgressOfDownload) => { + progressOfUpdateDownload.set(progressOfDownload); }); return async () => { runInAction(() => { - progressOfUpdateDownload.set(0); + progressOfUpdateDownload.set({ percentage: 0 }); downloadingUpdateState.set(true); });