Compare commits

...

3 Commits

Author SHA1 Message Date
aparnajyothi-y
ef2587e452 Merge 87063ef0ad into 802632921f 2025-02-28 16:16:04 +05:30
Aparna Jyothi
87063ef0ad npm run format 2025-02-28 16:16:00 +05:30
Aparna Jyothi
5d5d8e9b58 code improvements 2025-02-28 16:11:26 +05:30
4 changed files with 56 additions and 20 deletions

View File

@@ -13,6 +13,7 @@ import each from 'jest-each';
import * as main from '../src/main';
import * as util from '../src/util';
import OfficialBuilds from '../src/distributions/official_builds/official_builds';
import {validateMirrorURL} from '../src/util';
describe('main tests', () => {
let inputs = {} as any;
@@ -280,4 +281,37 @@ 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.'
);
});
});
});

17
dist/setup/index.js vendored
View File

@@ -100165,16 +100165,13 @@ class BaseDistribution {
catch (err) {
if (err instanceof Error &&
err.message.includes('getaddrinfo EAI_AGAIN')) {
core.error(`Network error: Failed to resolve the server at ${dataUrl}.
Please check your DNS settings or verify that the URL is correct.`);
core.setFailed(`Network error: Failed to resolve the server at ${dataUrl}.Please check your DNS settings or verify that the URL is correct.`);
}
else if (err instanceof hc.HttpClientError && err.statusCode === 404) {
core.error(`404 Error: Unable to find versions at ${dataUrl}.
Please verify that the mirror URL is valid.`);
core.setFailed(`404 Error: Unable to find versions at ${dataUrl}.Please verify that the mirror URL is valid.`);
}
else {
core.error(`Failed to fetch Node.js versions from ${dataUrl}.
Please check the URL and try again.}`);
core.setFailed(`Failed to fetch Node.js versions from ${dataUrl}.Please check the URL and try again.}`);
}
throw err;
}
@@ -100525,8 +100522,8 @@ class OfficialBuilds extends base_distribution_1.default {
}
}
catch (err) {
core.info(err.message);
core.info('Download failed');
core.setFailed(err.message);
core.setFailed('Download failed');
core.debug((_a = err.stack) !== null && _a !== void 0 ? _a : 'empty stack');
}
}
@@ -100726,13 +100723,13 @@ class OfficialBuilds extends base_distribution_1.default {
}
catch (error) {
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/. ' +
'To resolve this issue you may either fall back to the older version or try again later.');
}
else {
// 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;
}

View File

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

View File

@@ -26,8 +26,8 @@ export default class OfficialBuilds extends BaseDistribution {
const toolPath = downloadPath;
}
} catch (err) {
core.info((err as Error).message);
core.info('Download failed');
core.setFailed((err as Error).message);
core.setFailed('Download failed');
core.debug((err as Error).stack ?? 'empty stack');
}
} else {
@@ -334,14 +334,16 @@ export default class OfficialBuilds extends BaseDistribution {
return toolPath;
} catch (error) {
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. ` +
'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.'
);
} else {
// 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;