11import { registerSignalHandlers , SignalHandlerDependencies } from './signal-handler' ;
22
3+ const flushPromises = ( ) : Promise < void > => new Promise ( resolve => setImmediate ( resolve ) ) ;
4+
35describe ( 'registerSignalHandlers' , ( ) => {
46 let processOnSpy : jest . SpyInstance ;
57 let processExitSpy : jest . SpyInstance ;
68 let consoleErrorSpy : jest . SpyInstance ;
7- const handlers : Record < string , ( ...args : unknown [ ] ) => void > = { } ;
9+ const handlers : Record < string , ( ...args : unknown [ ] ) => unknown > = { } ;
810
911 beforeEach ( ( ) => {
1012 jest . clearAllMocks ( ) ;
@@ -15,9 +17,7 @@ describe('registerSignalHandlers', () => {
1517 return process ;
1618 }
1719 ) ;
18- processExitSpy = jest . spyOn ( process , 'exit' ) . mockImplementation ( ( ) => {
19- throw new Error ( 'process.exit called' ) ;
20- } ) ;
20+ processExitSpy = jest . spyOn ( process , 'exit' ) . mockImplementation ( ( ) => undefined as never ) ;
2121 consoleErrorSpy = jest . spyOn ( console , 'error' ) . mockImplementation ( ) ;
2222 } ) ;
2323
@@ -56,7 +56,8 @@ describe('registerSignalHandlers', () => {
5656
5757 registerSignalHandlers ( deps ) ;
5858
59- await expect ( handlers [ 'SIGINT' ] ( ) ) . rejects . toThrow ( 'process.exit called' ) ;
59+ handlers [ 'SIGINT' ] ( ) ;
60+ await flushPromises ( ) ;
6061 expect ( fastKill ) . toHaveBeenCalled ( ) ;
6162 expect ( performCleanup ) . toHaveBeenCalledWith ( 'SIGINT' ) ;
6263 expect ( processExitSpy ) . toHaveBeenCalledWith ( 130 ) ;
@@ -75,7 +76,8 @@ describe('registerSignalHandlers', () => {
7576
7677 registerSignalHandlers ( deps ) ;
7778
78- await expect ( handlers [ 'SIGINT' ] ( ) ) . rejects . toThrow ( 'process.exit called' ) ;
79+ handlers [ 'SIGINT' ] ( ) ;
80+ await flushPromises ( ) ;
7981 expect ( fastKill ) . not . toHaveBeenCalled ( ) ;
8082 expect ( performCleanup ) . toHaveBeenCalledWith ( 'SIGINT' ) ;
8183 } ) ;
@@ -93,7 +95,8 @@ describe('registerSignalHandlers', () => {
9395
9496 registerSignalHandlers ( deps ) ;
9597
96- await expect ( handlers [ 'SIGINT' ] ( ) ) . rejects . toThrow ( 'process.exit called' ) ;
98+ handlers [ 'SIGINT' ] ( ) ;
99+ await flushPromises ( ) ;
97100 expect ( fastKill ) . not . toHaveBeenCalled ( ) ;
98101 } ) ;
99102
@@ -110,7 +113,8 @@ describe('registerSignalHandlers', () => {
110113
111114 registerSignalHandlers ( deps ) ;
112115
113- await expect ( handlers [ 'SIGTERM' ] ( ) ) . rejects . toThrow ( 'process.exit called' ) ;
116+ handlers [ 'SIGTERM' ] ( ) ;
117+ await flushPromises ( ) ;
114118 expect ( fastKill ) . toHaveBeenCalled ( ) ;
115119 expect ( performCleanup ) . toHaveBeenCalledWith ( 'SIGTERM' ) ;
116120 expect ( processExitSpy ) . toHaveBeenCalledWith ( 143 ) ;
0 commit comments