diff --git a/__tests__/save.test.ts b/__tests__/save.test.ts index 81881a5..d355948 100644 --- a/__tests__/save.test.ts +++ b/__tests__/save.test.ts @@ -423,3 +423,39 @@ test("save with no primary key in state reads key from input", async () => { expect(logWarningMock).toHaveBeenCalledTimes(0); expect(failedMock).toHaveBeenCalledTimes(0); }); + +test("save when save on any failure is true", async () => { + const logWarningMock = jest.spyOn(actionUtils, "logWarning"); + const failedMock = jest.spyOn(core, "setFailed"); + + const savedCacheKey = "Linux-node-bb828da54c148048dd17899ba9fda624811cfb43"; + const primaryKey = "Linux-node-"; + const inputPath = "node_modules"; + + jest.spyOn(core, "getState") + // Cache Entry State + .mockImplementationOnce(() => { + return savedCacheKey; + }) + // Cache Key State + .mockImplementationOnce(() => { + return primaryKey; + }); + + testUtils.setInput(Inputs.Path, inputPath); + testUtils.setInput(Inputs.UploadChunkSize, "4000000"); + testUtils.setInput(Inputs.SaveOnAnyFailure, "true"); + + const cacheId = 4; + const saveCacheMock = jest + .spyOn(cache, "saveCache") + .mockImplementationOnce(() => { + return Promise.resolve(cacheId); + }); + + await run(); + + expect(saveCacheMock).toHaveBeenCalledTimes(1); + expect(logWarningMock).toHaveBeenCalledTimes(0); + expect(failedMock).toHaveBeenCalledTimes(0); +});