Compare commits

...

2 Commits

7 changed files with 35 additions and 0 deletions

View File

@ -46,6 +46,7 @@ describe('setup-node', () => {
let isCacheActionAvailable: jest.SpyInstance;
let getExecOutputSpy: jest.SpyInstance;
let getJsonSpy: jest.SpyInstance;
let processExitSpy: jest.SpyInstance;
beforeEach(() => {
// @actions/core
@ -63,6 +64,9 @@ describe('setup-node', () => {
archSpy = jest.spyOn(osm, 'arch');
archSpy.mockImplementation(() => os['arch']);
execSpy = jest.spyOn(cp, 'execSync');
processExitSpy = jest
.spyOn(process, 'exit')
.mockImplementation((() => {}) as () => never);
// @actions/tool-cache
findSpy = jest.spyOn(tc, 'find');

View File

@ -38,6 +38,8 @@ describe('main tests', () => {
let setupNodeJsSpy: jest.SpyInstance;
let processExitSpy: jest.SpyInstance;
beforeEach(() => {
inputs = {};
@ -76,6 +78,10 @@ describe('main tests', () => {
setupNodeJsSpy = jest.spyOn(OfficialBuilds.prototype, 'setupNodeJs');
setupNodeJsSpy.mockImplementation(() => {});
processExitSpy = jest
.spyOn(process, 'exit')
.mockImplementation((() => {}) as () => never);
});
afterEach(() => {
@ -237,6 +243,12 @@ describe('main tests', () => {
`::error::The specified node version file at: ${versionFilePath} does not exist${osm.EOL}`
);
});
it('should call process.exit() explicitly after running', async () => {
await main.run();
expect(processExitSpy).toHaveBeenCalled();
});
});
describe('cache on GHES', () => {

View File

@ -46,6 +46,7 @@ describe('setup-node', () => {
let isCacheActionAvailable: jest.SpyInstance;
let getExecOutputSpy: jest.SpyInstance;
let getJsonSpy: jest.SpyInstance;
let processExitSpy: jest.SpyInstance;
beforeEach(() => {
// @actions/core
@ -64,6 +65,9 @@ describe('setup-node', () => {
archSpy = jest.spyOn(osm, 'arch');
archSpy.mockImplementation(() => os['arch']);
execSpy = jest.spyOn(cp, 'execSync');
processExitSpy = jest
.spyOn(process, 'exit')
.mockImplementation((() => {}) as () => never);
// @actions/tool-cache
findSpy = jest.spyOn(tc, 'find');

View File

@ -46,6 +46,7 @@ describe('setup-node', () => {
let isCacheActionAvailable: jest.SpyInstance;
let getExecOutputSpy: jest.SpyInstance;
let getJsonSpy: jest.SpyInstance;
let processExitSpy: jest.SpyInstance;
beforeEach(() => {
// @actions/core
@ -63,6 +64,9 @@ describe('setup-node', () => {
archSpy = jest.spyOn(osm, 'arch');
archSpy.mockImplementation(() => os['arch']);
execSpy = jest.spyOn(cp, 'execSync');
processExitSpy = jest
.spyOn(process, 'exit')
.mockImplementation((() => {}) as () => never);
// @actions/tool-cache
findSpy = jest.spyOn(tc, 'find');

View File

@ -41,6 +41,7 @@ describe('setup-node', () => {
let isCacheActionAvailable: jest.SpyInstance;
let getExecOutputSpy: jest.SpyInstance;
let getJsonSpy: jest.SpyInstance;
let processExitSpy: jest.SpyInstance;
beforeEach(() => {
// @actions/core
@ -58,6 +59,9 @@ describe('setup-node', () => {
archSpy = jest.spyOn(osm, 'arch');
archSpy.mockImplementation(() => os['arch']);
execSpy = jest.spyOn(cp, 'execSync');
processExitSpy = jest
.spyOn(process, 'exit')
.mockImplementation((() => {}) as () => never);
// @actions/tool-cache
findSpy = jest.spyOn(tc, 'find');

3
dist/setup/index.js vendored
View File

@ -94476,6 +94476,9 @@ function run() {
catch (err) {
core.setFailed(err.message);
}
// Explicit process.exit() to not wait for hanging promises,
// see https://github.com/actions/setup-node/issues/878
process.exit();
});
}
exports.run = run;

View File

@ -76,6 +76,10 @@ export async function run() {
} catch (err) {
core.setFailed((err as Error).message);
}
// Explicit process.exit() to not wait for hanging promises,
// see https://github.com/actions/setup-node/issues/878
process.exit();
}
function resolveVersionInput(): string {