mirror of
https://code.forgejo.org/actions/setup-node
synced 2025-03-15 14:54:38 +01:00
test cases update
This commit is contained in:
parent
092c6400ca
commit
b903bc8693
1 changed files with 74 additions and 2 deletions
|
@ -173,7 +173,44 @@ describe('main tests', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('getNodeVersionFromFile', () => {
|
||||||
|
each`
|
||||||
|
contents | expected
|
||||||
|
${'12'} | ${'12'}
|
||||||
|
${'12.3'} | ${'12.3'}
|
||||||
|
${'12.3.4'} | ${'12.3.4'}
|
||||||
|
${'v12.3.4'} | ${'12.3.4'}
|
||||||
|
${'lts/erbium'} | ${'lts/erbium'}
|
||||||
|
${'lts/*'} | ${'lts/*'}
|
||||||
|
${'nodejs 12.3.4'} | ${'12.3.4'}
|
||||||
|
${'ruby 2.3.4\nnodejs 12.3.4\npython 3.4.5'} | ${'12.3.4'}
|
||||||
|
${''} | ${''}
|
||||||
|
${'unknown format'} | ${'unknown format'}
|
||||||
|
${' 14.1.0 '} | ${'14.1.0'}
|
||||||
|
${'{"volta": {"node": ">=14.0.0 <=17.0.0"}}'}| ${'>=14.0.0 <=17.0.0'}
|
||||||
|
${'{"volta": {"extends": "./package.json"}}'}| ${'18.0.0'}
|
||||||
|
${'{"engines": {"node": "17.0.0"}}'} | ${'17.0.0'}
|
||||||
|
${'{}'} | ${null}
|
||||||
|
`.it('parses "$contents"', ({contents, expected}) => {
|
||||||
|
const existsSpy = jest.spyOn(fs, 'existsSync');
|
||||||
|
existsSpy.mockImplementation(() => true);
|
||||||
|
|
||||||
|
const readFileSpy = jest.spyOn(fs, 'readFileSync');
|
||||||
|
readFileSpy.mockImplementation(filePath => {
|
||||||
|
if (
|
||||||
|
typeof filePath === 'string' &&
|
||||||
|
path.basename(filePath) === 'package.json'
|
||||||
|
) {
|
||||||
|
// Special case for volta.extends
|
||||||
|
return '{"volta": {"node": "18.0.0"}}';
|
||||||
|
}
|
||||||
|
|
||||||
|
return contents;
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(util.getNodeVersionFromFile('file')).toBe(expected);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('node-version-file flag', () => {
|
describe('node-version-file flag', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
@ -291,5 +328,40 @@ describe('main tests', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('mirror-url parameter', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
inputs['mirror-url'] = 'https://custom-mirror-url.com';
|
||||||
|
|
||||||
|
validateMirrorUrlSpy = jest.spyOn(main, 'run');
|
||||||
|
validateMirrorUrlSpy.mockImplementation(() => {});
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
validateMirrorUrlSpy.mockRestore();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Read mirror-url if mirror-url is provided', async () => {
|
||||||
|
// Arrange
|
||||||
|
inputs['mirror-url'] = 'https://custom-mirror-url.com';
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await main.run();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(inputs['mirror-url']).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throw an error if mirror-url is empty', async () => {
|
||||||
|
// Arrange
|
||||||
|
inputs['mirror-url'] = ' ';
|
||||||
|
|
||||||
|
// Mock log and setFailed
|
||||||
|
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => {}); // Mock the log function
|
||||||
|
|
||||||
|
// Act & Assert
|
||||||
|
expect(() => validateMirrorURL(inputs['mirror-url'])).toThrowError(
|
||||||
|
'Mirror URL is empty. Please provide a valid mirror URL.'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue