mirror of
https://github.com/actions/setup-node
synced 2024-11-09 23:22:41 +00:00
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
|
import * as core from '@actions/core';
|
||
|
import path from 'path';
|
||
|
import * as utils from '../src/cache-utils';
|
||
|
|
||
|
describe('cache-utils', () => {
|
||
|
const commonPath = '/some/random/path';
|
||
|
const versionYarn1 = '1.2.3';
|
||
|
const versionYarn2 = '2.3.4';
|
||
|
|
||
|
let debugSpy: jest.SpyInstance;
|
||
|
let getCommandOutputSpy: jest.SpyInstance;
|
||
|
|
||
|
function getPackagePath(name: string) {
|
||
|
if (name === utils.supportedPackageManagers.npm.getCacheFolderCommand) {
|
||
|
return `${commonPath}/npm`;
|
||
|
} else {
|
||
|
if (name === utils.supportedPackageManagers.yarn1.getCacheFolderCommand) {
|
||
|
return `${commonPath}/yarn1`;
|
||
|
} else {
|
||
|
return `${commonPath}/yarn2`;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
beforeEach(() => {
|
||
|
process.env['GITHUB_WORKSPACE'] = path.join(__dirname, 'data');
|
||
|
debugSpy = jest.spyOn(core, 'debug');
|
||
|
debugSpy.mockImplementation(msg => {});
|
||
|
|
||
|
getCommandOutputSpy = jest.spyOn(utils, 'getCommandOutput');
|
||
|
});
|
||
|
|
||
|
describe('getPackageManagerInfo', () => {
|
||
|
it.each([
|
||
|
['npm', utils.supportedPackageManagers.npm],
|
||
|
['yarn', utils.supportedPackageManagers.yarn1],
|
||
|
['yarn1', null],
|
||
|
['yarn2', null],
|
||
|
['npm7', null]
|
||
|
])('getPackageManagerInfo for %s is %o', async (packageManager, result) => {
|
||
|
getCommandOutputSpy.mockImplementationOnce(() => versionYarn1);
|
||
|
await expect(utils.getPackageManagerInfo(packageManager)).resolves.toBe(
|
||
|
result
|
||
|
);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
afterEach(() => {
|
||
|
jest.resetAllMocks();
|
||
|
jest.clearAllMocks();
|
||
|
});
|
||
|
});
|