@@ -459,7 +459,7 @@ describe('Logger', () => {
459459
460460 } ) ;
461461
462- describe ( '#getLoggerCfg ' , ( ) => {
462+ describe ( '#processLoggerConfig ' , ( ) => {
463463 let sandbox ;
464464
465465 beforeEach ( ( ) => {
@@ -869,6 +869,88 @@ describe('Logger', () => {
869869
870870 } ) ;
871871
872+ describe ( '#flushLogFileAndExit' , ( ) => {
873+ let sandbox ;
874+
875+ beforeEach ( ( ) => {
876+ Logger . __reset ( ) ;
877+ sandbox = sinon . sandbox . create ( ) ;
878+ } ) ;
879+
880+ afterEach ( ( ) => {
881+ Logger . __reset ( ) ;
882+ sandbox . restore ( ) ;
883+ } ) ;
884+
885+ it ( 'should just exit with error code if no transports defined' , ( ) => {
886+ sandbox . stub ( process , 'exit' ) ;
887+ let stubLogger = {
888+ } ;
889+
890+ Logger . setFunctionalLogger ( stubLogger ) ;
891+ Logger . flushLogFileAndExit ( 99 ) ;
892+ sinon . assert . calledOnce ( process . exit ) ;
893+ sinon . assert . calledWith ( process . exit , 99 ) ;
894+ } ) ;
895+
896+ it ( 'should just exit with error code if no file logger transport defined' , ( ) => {
897+ sandbox . stub ( process , 'exit' ) ;
898+ let stubTransport = {
899+ on : sinon . stub ( ) ,
900+ flush : sinon . stub ( )
901+ } ;
902+ let stubLogger = {
903+ transports : { 'info-file' : stubTransport }
904+ } ;
905+
906+ Logger . setFunctionalLogger ( stubLogger ) ;
907+ Logger . flushLogFileAndExit ( 0 ) ;
908+ sinon . assert . calledOnce ( process . exit ) ;
909+ sinon . assert . calledWith ( process . exit , 0 ) ;
910+ sinon . assert . notCalled ( stubTransport . on ) ;
911+ sinon . assert . notCalled ( stubTransport . flush ) ;
912+ } ) ;
913+
914+ it ( 'should just exit with error code if file logger transport defined, but no stream exists' , ( ) => {
915+ sandbox . stub ( process , 'exit' ) ;
916+ let stubTransport = {
917+ on : sinon . stub ( ) ,
918+ flush : sinon . stub ( )
919+ } ;
920+ let stubLogger = {
921+ transports : { 'debug-file' : stubTransport }
922+ } ;
923+
924+ Logger . setFunctionalLogger ( stubLogger ) ;
925+ Logger . flushLogFileAndExit ( 0 ) ;
926+ sinon . assert . calledOnce ( process . exit ) ;
927+ sinon . assert . calledWith ( process . exit , 0 ) ;
928+ sinon . assert . notCalled ( stubTransport . on ) ;
929+ sinon . assert . notCalled ( stubTransport . flush ) ;
930+ } ) ;
931+
932+
933+ it ( 'should register a flush handler and exit only when that exit handler is called if file logger transport defined' , ( ) => {
934+ sandbox . stub ( process , 'exit' ) ;
935+ let stubTransport = {
936+ on : sinon . stub ( ) . yields ( ) ,
937+ flush : sinon . stub ( ) ,
938+ _stream : { }
939+ } ;
940+ let stubLogger = {
941+ close : sinon . stub ( ) ,
942+ transports : { 'debug-file' : stubTransport }
943+ } ;
944+
945+ Logger . setFunctionalLogger ( stubLogger ) ;
946+ Logger . flushLogFileAndExit ( 77 ) ;
947+ sinon . assert . calledOnce ( process . exit ) ;
948+ sinon . assert . calledWith ( process . exit , 77 ) ;
949+ sinon . assert . calledOnce ( stubTransport . flush ) ;
950+ sinon . assert . calledOnce ( stubTransport . on ) ;
951+ } ) ;
952+ } ) ;
953+
872954 describe ( '#invokeAllLevels' , ( ) => {
873955 let logger = {
874956 debug : sinon . stub ( ) ,
0 commit comments