code improvements

This commit is contained in:
Aparna Jyothi 2025-02-28 16:11:26 +05:30
parent 30c33f0409
commit 5d5d8e9b58
4 changed files with 51 additions and 16 deletions

View file

@ -13,6 +13,7 @@ import each from 'jest-each';
import * as main from '../src/main'; import * as main from '../src/main';
import * as util from '../src/util'; import * as util from '../src/util';
import OfficialBuilds from '../src/distributions/official_builds/official_builds'; import OfficialBuilds from '../src/distributions/official_builds/official_builds';
import { validateMirrorURL } from '../src/util';
describe('main tests', () => { describe('main tests', () => {
let inputs = {} as any; let inputs = {} as any;
@ -280,4 +281,40 @@ describe('main tests', () => {
); );
}); });
}); });
describe('mirror-url parameter', () => {
beforeEach(() => {
inputs['mirror-url'] = 'https://custom-mirror-url.com';
});
afterEach(() => {
delete inputs['mirror-url'];
});
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'])).toThrow(
'Mirror URL is empty. Please provide a valid mirror URL.'
);
});
});
}); });

15
dist/setup/index.js vendored
View file

@ -100165,16 +100165,15 @@ class BaseDistribution {
catch (err) { catch (err) {
if (err instanceof Error && if (err instanceof Error &&
err.message.includes('getaddrinfo EAI_AGAIN')) { err.message.includes('getaddrinfo EAI_AGAIN')) {
core.error(`Network error: Failed to resolve the server at ${dataUrl}. core.setFailed(`Network error: Failed to resolve the server at ${dataUrl}.
Please check your DNS settings or verify that the URL is correct.`); Please check your DNS settings or verify that the URL is correct.`);
} }
else if (err instanceof hc.HttpClientError && err.statusCode === 404) { else if (err instanceof hc.HttpClientError && err.statusCode === 404) {
core.error(`404 Error: Unable to find versions at ${dataUrl}. core.setFailed(`404 Error: Unable to find versions at ${dataUrl}.
Please verify that the mirror URL is valid.`); Please verify that the mirror URL is valid.`);
} }
else { else {
core.error(`Failed to fetch Node.js versions from ${dataUrl}. core.setFailed(`Failed to fetch Node.js versions from ${dataUrl}.Please check the URL and try again.}`);
Please check the URL and try again.}`);
} }
throw err; throw err;
} }
@ -100525,8 +100524,8 @@ class OfficialBuilds extends base_distribution_1.default {
} }
} }
catch (err) { catch (err) {
core.info(err.message); core.setFailed(err.message);
core.info('Download failed'); core.setFailed('Download failed');
core.debug((_a = err.stack) !== null && _a !== void 0 ? _a : 'empty stack'); core.debug((_a = err.stack) !== null && _a !== void 0 ? _a : 'empty stack');
} }
} }
@ -100726,13 +100725,13 @@ class OfficialBuilds extends base_distribution_1.default {
} }
catch (error) { catch (error) {
if (error instanceof tc.HTTPError && error.httpStatusCode === 404) { if (error instanceof tc.HTTPError && error.httpStatusCode === 404) {
core.error(`Node version ${this.nodeInfo.versionSpec} for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} was found but failed to download. ` + core.setFailed(`Node version ${this.nodeInfo.versionSpec} for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} was found but failed to download. ` +
'This usually happens when downloadable binaries are not fully updated at https://nodejs.org/. ' + 'This usually happens when downloadable binaries are not fully updated at https://nodejs.org/. ' +
'To resolve this issue you may either fall back to the older version or try again later.'); 'To resolve this issue you may either fall back to the older version or try again later.');
} }
else { else {
// For any other error type, you can log the error message. // For any other error type, you can log the error message.
core.error(`An unexpected error occurred like url might not correct`); core.setFailed(`An unexpected error occurred like url might not correct`);
} }
throw error; throw error;
} }

View file

@ -116,14 +116,13 @@ export default abstract class BaseDistribution {
err instanceof Error && err instanceof Error &&
err.message.includes('getaddrinfo EAI_AGAIN') err.message.includes('getaddrinfo EAI_AGAIN')
) { ) {
core.error(`Network error: Failed to resolve the server at ${dataUrl}. core.setFailed(`Network error: Failed to resolve the server at ${dataUrl}.
Please check your DNS settings or verify that the URL is correct.`); Please check your DNS settings or verify that the URL is correct.`);
} else if (err instanceof hc.HttpClientError && err.statusCode === 404) { } else if (err instanceof hc.HttpClientError && err.statusCode === 404) {
core.error(`404 Error: Unable to find versions at ${dataUrl}. core.setFailed(`404 Error: Unable to find versions at ${dataUrl}.
Please verify that the mirror URL is valid.`); Please verify that the mirror URL is valid.`);
} else { } else {
core.error(`Failed to fetch Node.js versions from ${dataUrl}. core.setFailed(`Failed to fetch Node.js versions from ${dataUrl}.Please check the URL and try again.}`);
Please check the URL and try again.}`);
} }
throw err; throw err;
} }

View file

@ -26,8 +26,8 @@ export default class OfficialBuilds extends BaseDistribution {
const toolPath = downloadPath; const toolPath = downloadPath;
} }
} catch (err) { } catch (err) {
core.info((err as Error).message); core.setFailed((err as Error).message);
core.info('Download failed'); core.setFailed('Download failed');
core.debug((err as Error).stack ?? 'empty stack'); core.debug((err as Error).stack ?? 'empty stack');
} }
} else { } else {
@ -334,14 +334,14 @@ export default class OfficialBuilds extends BaseDistribution {
return toolPath; return toolPath;
} catch (error) { } catch (error) {
if (error instanceof tc.HTTPError && error.httpStatusCode === 404) { if (error instanceof tc.HTTPError && error.httpStatusCode === 404) {
core.error( core.setFailed(
`Node version ${this.nodeInfo.versionSpec} for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} was found but failed to download. ` + `Node version ${this.nodeInfo.versionSpec} for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} was found but failed to download. ` +
'This usually happens when downloadable binaries are not fully updated at https://nodejs.org/. ' + 'This usually happens when downloadable binaries are not fully updated at https://nodejs.org/. ' +
'To resolve this issue you may either fall back to the older version or try again later.' 'To resolve this issue you may either fall back to the older version or try again later.'
); );
} else { } else {
// For any other error type, you can log the error message. // For any other error type, you can log the error message.
core.error(`An unexpected error occurred like url might not correct`); core.setFailed(`An unexpected error occurred like url might not correct`);
} }
throw error; throw error;