From bb828da54c148048dd17899ba9fda624811cfb43 Mon Sep 17 00:00:00 2001
From: Josh Gross <joshmgross@github.com>
Date: Wed, 13 Nov 2019 11:00:46 -0500
Subject: [PATCH] Format cache size and display on info (#85)

---
 __tests__/restore.test.ts | 4 +++-
 src/restore.ts            | 6 +++++-
 src/save.ts               | 4 +++-
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/__tests__/restore.test.ts b/__tests__/restore.test.ts
index 191f804..f8c4cb3 100644
--- a/__tests__/restore.test.ts
+++ b/__tests__/restore.test.ts
@@ -319,7 +319,7 @@ test("restore with a pull request event and cache found", async () => {
     const setCacheStateMock = jest.spyOn(actionUtils, "setCacheState");
     const downloadCacheMock = jest.spyOn(cacheHttpClient, "downloadCache");
 
-    const fileSize = 142;
+    const fileSize = 62915000;
     const getArchiveFileSizeMock = jest
         .spyOn(actionUtils, "getArchiveFileSize")
         .mockReturnValue(fileSize);
@@ -336,6 +336,7 @@ test("restore with a pull request event and cache found", async () => {
     expect(createTempDirectoryMock).toHaveBeenCalledTimes(1);
     expect(downloadCacheMock).toHaveBeenCalledWith(cacheEntry, archivePath);
     expect(getArchiveFileSizeMock).toHaveBeenCalledWith(archivePath);
+    expect(infoMock).toHaveBeenCalledWith(`Cache Size: ~60 MB (62915000 B)`);
     expect(mkdirMock).toHaveBeenCalledWith(cachePath);
 
     const IS_WINDOWS = process.platform === "win32";
@@ -412,6 +413,7 @@ test("restore with cache found for restore key", async () => {
     expect(createTempDirectoryMock).toHaveBeenCalledTimes(1);
     expect(downloadCacheMock).toHaveBeenCalledWith(cacheEntry, archivePath);
     expect(getArchiveFileSizeMock).toHaveBeenCalledWith(archivePath);
+    expect(infoMock).toHaveBeenCalledWith(`Cache Size: ~0 MB (142 B)`);
     expect(mkdirMock).toHaveBeenCalledWith(cachePath);
 
     const IS_WINDOWS = process.platform === "win32";
diff --git a/src/restore.ts b/src/restore.ts
index 0af62d4..6936652 100644
--- a/src/restore.ts
+++ b/src/restore.ts
@@ -80,7 +80,11 @@ async function run(): Promise<void> {
             await cacheHttpClient.downloadCache(cacheEntry, archivePath);
 
             const archiveFileSize = utils.getArchiveFileSize(archivePath);
-            core.debug(`File Size: ${archiveFileSize}`);
+            core.info(
+                `Cache Size: ~${Math.round(
+                    archiveFileSize / (1024 * 1024)
+                )} MB (${archiveFileSize} B)`
+            );
 
             io.mkdirP(cachePath);
 
diff --git a/src/save.ts b/src/save.ts
index d3276e7..c4d5d61 100644
--- a/src/save.ts
+++ b/src/save.ts
@@ -57,7 +57,9 @@ async function run(): Promise<void> {
         core.debug(`File Size: ${archiveFileSize}`);
         if (archiveFileSize > fileSizeLimit) {
             core.warning(
-                `Cache size of ${archiveFileSize} bytes is over the 400MB limit, not saving cache.`
+                `Cache size of ~${Math.round(
+                    archiveFileSize / (1024 * 1024)
+                )} MB (${archiveFileSize} B) is over the 400MB limit, not saving cache.`
             );
             return;
         }