cache/src/utils/testUtils.ts
Vincent Clemson dfd8915e1a add state save logic when selecting reevaluation
* add logic to not save state in restore step when setting `reeval` to true
* create infrastructure to set `Inputs.Reeval` input variable
  within tests
* `Inputs.Reeval` set to false for all save & restore tests
2022-06-19 20:12:49 -04:00

37 lines
1.2 KiB
TypeScript

import { Inputs } from "../constants";
// See: https://github.com/actions/toolkit/blob/master/packages/core/src/core.ts#L67
function getInputName(name: string): string {
return `INPUT_${name.replace(/ /g, "_").toUpperCase()}`;
}
export function setInput(name: string, value: string): void {
process.env[getInputName(name)] = value;
}
interface CacheInput {
path: string;
key: string;
// onlyRestore: string;
// reeval: string;
restoreKeys?: string[];
}
export function setInputs(input: CacheInput): void {
setInput(Inputs.Path, input.path);
setInput(Inputs.Key, input.key);
// setInput(Inputs.OnlyRestore, input.onlyRestore);
// setInput(Inputs.Reeval, input.reeval);
input.restoreKeys &&
setInput(Inputs.RestoreKeys, input.restoreKeys.join("\n"));
}
export function clearInputs(): void {
delete process.env[getInputName(Inputs.Path)];
delete process.env[getInputName(Inputs.Key)];
delete process.env[getInputName(Inputs.RestoreKeys)];
delete process.env[getInputName(Inputs.UploadChunkSize)];
delete process.env[getInputName(Inputs.OnlyRestore)];
delete process.env[getInputName(Inputs.Reeval)];
}