mirror of
https://github.com/actions/setup-go.git
synced 2025-04-23 17:40:50 +00:00
Add unit-tests for cache-restore file
This commit is contained in:
parent
0d5a33faa6
commit
104f9bb034
2 changed files with 86 additions and 1 deletions
86
__tests__/cache-restore.test.ts
Normal file
86
__tests__/cache-restore.test.ts
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
import * as cache from '@actions/cache';
|
||||||
|
import * as core from '@actions/core';
|
||||||
|
import * as glob from '@actions/glob';
|
||||||
|
|
||||||
|
import * as cacheRestore from '../src/cache-restore';
|
||||||
|
import * as cacheUtils from '../src/cache-utils';
|
||||||
|
import {PackageManagerInfo} from '../src/package-managers';
|
||||||
|
|
||||||
|
describe('restoreCache', () => {
|
||||||
|
//Arrange
|
||||||
|
let hashFilesSpy = jest.spyOn(glob, 'hashFiles');
|
||||||
|
let getCacheDirectoryPathSpy = jest.spyOn(
|
||||||
|
cacheUtils,
|
||||||
|
'getCacheDirectoryPath'
|
||||||
|
);
|
||||||
|
let restoreCacheSpy = jest.spyOn(cache, 'restoreCache');
|
||||||
|
let infoSpy = jest.spyOn(core, 'info');
|
||||||
|
let setOutputSpy = jest.spyOn(core, 'setOutput');
|
||||||
|
|
||||||
|
const packageManager = 'default';
|
||||||
|
const cacheDependencyPath = 'some path';
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
getCacheDirectoryPathSpy.mockImplementation(
|
||||||
|
(PackageManager: PackageManagerInfo) => {
|
||||||
|
return new Promise<string>(resolve => {
|
||||||
|
resolve('Some cache directory path');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throw if dependency file path is not valid', async () => {
|
||||||
|
//Arrange
|
||||||
|
hashFilesSpy.mockImplementation((somePath: string) => {
|
||||||
|
return new Promise<string>(resolve => {
|
||||||
|
resolve('');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
//Act + Assert
|
||||||
|
expect(async () => {
|
||||||
|
await cacheRestore.restoreCache(packageManager, cacheDependencyPath);
|
||||||
|
}).rejects.toThrowError(
|
||||||
|
'Some specified paths were not resolved, unable to cache dependencies.'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should inform if cache hit is not occured', async () => {
|
||||||
|
//Arrange
|
||||||
|
hashFilesSpy.mockImplementation((somePath: string) => {
|
||||||
|
return new Promise<string>(resolve => {
|
||||||
|
resolve('Some File Hash');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
restoreCacheSpy.mockImplementation(() => {
|
||||||
|
return new Promise<string>(resolve => {
|
||||||
|
resolve('');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
//Act + Assert
|
||||||
|
await cacheRestore.restoreCache(packageManager, cacheDependencyPath);
|
||||||
|
expect(infoSpy).toBeCalledWith(`Cache is not found`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should set output if cache hit is occured', async () => {
|
||||||
|
//Arrange
|
||||||
|
hashFilesSpy.mockImplementation((somePath: string) => {
|
||||||
|
return new Promise<string>(resolve => {
|
||||||
|
resolve('Some File Hash');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
restoreCacheSpy.mockImplementation(() => {
|
||||||
|
return new Promise<string>(resolve => {
|
||||||
|
resolve('Some cache key');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
//Act + Assert
|
||||||
|
await cacheRestore.restoreCache(packageManager, cacheDependencyPath);
|
||||||
|
expect(setOutputSpy).toBeCalledWith('cache-hit', true);
|
||||||
|
});
|
||||||
|
});
|
|
@ -1,7 +1,6 @@
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
import {supportedPackageManagers, PackageManagerInfo} from './package-managers';
|
import {supportedPackageManagers, PackageManagerInfo} from './package-managers';
|
||||||
|
|
||||||
|
|
||||||
export const getCommandOutput = async (toolCommand: string) => {
|
export const getCommandOutput = async (toolCommand: string) => {
|
||||||
let {stdout, stderr, exitCode} = await exec.getExecOutput(
|
let {stdout, stderr, exitCode} = await exec.getExecOutput(
|
||||||
toolCommand,
|
toolCommand,
|
||||||
|
|
Loading…
Add table
Reference in a new issue