Add save-always inpute/output test

This commit is contained in:
Danny Gleckler 2024-02-08 20:52:30 -05:00
parent f04cc738d7
commit faaa3912ca
2 changed files with 41 additions and 0 deletions

View file

@ -489,3 +489,40 @@ test("restore failure with earlyExit should call process exit", async () => {
); );
expect(processExitMock).toHaveBeenCalledWith(1); expect(processExitMock).toHaveBeenCalledWith(1);
}); });
test("restore with save-always set", async () => {
jest.spyOn(actionUtils, "isGhes").mockImplementation(() => true);
const path = "node_modules";
const key = "node-test";
testUtils.setInputs({
path: path,
key,
saveAlways: true
});
const setCacheHitOutputMock = jest.spyOn(core, "setOutput");
const restoreCacheMock = jest
.spyOn(cache, "restoreCache")
.mockImplementationOnce(() => {
return Promise.resolve(undefined);
});
await restoreImpl(new StateProvider());
expect(restoreCacheMock).toHaveBeenCalledTimes(1);
expect(restoreCacheMock).toHaveBeenCalledWith(
[path],
key,
[],
{
lookupOnly: false
},
false
);
expect(setCacheHitOutputMock).toHaveBeenCalledTimes(1);
expect(setCacheHitOutputMock).toHaveBeenCalledWith(
"save-always-d18d746b9",
"true"
);
});

View file

@ -16,6 +16,7 @@ interface CacheInput {
enableCrossOsArchive?: boolean; enableCrossOsArchive?: boolean;
failOnCacheMiss?: boolean; failOnCacheMiss?: boolean;
lookupOnly?: boolean; lookupOnly?: boolean;
saveAlways?: boolean;
} }
export function setInputs(input: CacheInput): void { export function setInputs(input: CacheInput): void {
@ -32,6 +33,8 @@ export function setInputs(input: CacheInput): void {
setInput(Inputs.FailOnCacheMiss, input.failOnCacheMiss.toString()); setInput(Inputs.FailOnCacheMiss, input.failOnCacheMiss.toString());
input.lookupOnly !== undefined && input.lookupOnly !== undefined &&
setInput(Inputs.LookupOnly, input.lookupOnly.toString()); setInput(Inputs.LookupOnly, input.lookupOnly.toString());
input.saveAlways !== undefined &&
setInput(Inputs.SaveAlways, input.saveAlways.toString());
} }
export function clearInputs(): void { export function clearInputs(): void {
@ -42,4 +45,5 @@ export function clearInputs(): void {
delete process.env[getInputName(Inputs.EnableCrossOsArchive)]; delete process.env[getInputName(Inputs.EnableCrossOsArchive)];
delete process.env[getInputName(Inputs.FailOnCacheMiss)]; delete process.env[getInputName(Inputs.FailOnCacheMiss)];
delete process.env[getInputName(Inputs.LookupOnly)]; delete process.env[getInputName(Inputs.LookupOnly)];
delete process.env[getInputName(Inputs.SaveAlways)];
} }