@@ -822,4 +822,115 @@ describe('setupLoggerAndTelemetry', function () {
822822 expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
823823 expect ( analyticsOutput ) . to . be . empty ;
824824 } ) ;
825+
826+ it ( 'tracks custom logging events' , function ( ) {
827+ setupLoggerAndTelemetry (
828+ bus ,
829+ logger ,
830+ analytics ,
831+ {
832+ platform : process . platform ,
833+ arch : process . arch ,
834+ } ,
835+ '1.0.0'
836+ ) ;
837+ expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
838+ expect ( analyticsOutput ) . to . be . empty ;
839+
840+ bus . emit ( 'mongosh:connect' , {
841+ uri : 'mongodb://localhost/' ,
842+ is_localhost : true ,
843+ is_atlas : false ,
844+ resolved_hostname : 'localhost' ,
845+ node_version : 'v12.19.0' ,
846+ } ) ;
847+
848+ bus . emit ( 'mongosh:write-custom-log' , {
849+ method : 'info' ,
850+ message : 'This is an info message' ,
851+ attr : { some : 'value' } ,
852+ } ) ;
853+
854+ bus . emit ( 'mongosh:write-custom-log' , {
855+ method : 'warn' ,
856+ message : 'This is a warn message' ,
857+ } ) ;
858+
859+ bus . emit ( 'mongosh:write-custom-log' , {
860+ method : 'error' ,
861+ message : 'Error!' ,
862+ } ) ;
863+
864+ bus . emit ( 'mongosh:write-custom-log' , {
865+ method : 'fatal' ,
866+ message : 'Fatal!' ,
867+ } ) ;
868+
869+ bus . emit ( 'mongosh:write-custom-log' , {
870+ method : 'debug' ,
871+ message : 'Debug with level' ,
872+ level : 1 ,
873+ } ) ;
874+
875+ bus . emit ( 'mongosh:write-custom-log' , {
876+ method : 'debug' ,
877+ message : 'Debug without level' ,
878+ } ) ;
879+
880+ expect ( logOutput [ 0 ] . msg ) . to . equal ( 'Connecting to server' ) ;
881+ expect ( logOutput [ 0 ] . attr . connectionUri ) . to . equal ( 'mongodb://localhost/' ) ;
882+ expect ( logOutput [ 0 ] . attr . is_localhost ) . to . equal ( true ) ;
883+ expect ( logOutput [ 0 ] . attr . is_atlas ) . to . equal ( false ) ;
884+ expect ( logOutput [ 0 ] . attr . atlas_hostname ) . to . equal ( null ) ;
885+ expect ( logOutput [ 0 ] . attr . node_version ) . to . equal ( 'v12.19.0' ) ;
886+
887+ expect ( logOutput [ 1 ] . s ) . to . equal ( 'I' ) ;
888+ expect ( logOutput [ 1 ] . c ) . to . equal ( 'MONGOSH-SCRIPTS' ) ;
889+ expect ( logOutput [ 1 ] . ctx ) . to . equal ( 'custom-log' ) ;
890+ expect ( logOutput [ 1 ] . msg ) . to . equal ( 'This is an info message' ) ;
891+ expect ( logOutput [ 1 ] . attr . some ) . to . equal ( 'value' ) ;
892+
893+ expect ( logOutput [ 2 ] . s ) . to . equal ( 'W' ) ;
894+ expect ( logOutput [ 2 ] . c ) . to . equal ( 'MONGOSH-SCRIPTS' ) ;
895+ expect ( logOutput [ 2 ] . ctx ) . to . equal ( 'custom-log' ) ;
896+ expect ( logOutput [ 2 ] . msg ) . to . equal ( 'This is a warn message' ) ;
897+
898+ expect ( logOutput [ 3 ] . s ) . to . equal ( 'E' ) ;
899+ expect ( logOutput [ 3 ] . c ) . to . equal ( 'MONGOSH-SCRIPTS' ) ;
900+ expect ( logOutput [ 3 ] . ctx ) . to . equal ( 'custom-log' ) ;
901+ expect ( logOutput [ 3 ] . msg ) . to . equal ( 'Error!' ) ;
902+
903+ expect ( logOutput [ 4 ] . s ) . to . equal ( 'F' ) ;
904+ expect ( logOutput [ 4 ] . c ) . to . equal ( 'MONGOSH-SCRIPTS' ) ;
905+ expect ( logOutput [ 4 ] . ctx ) . to . equal ( 'custom-log' ) ;
906+ expect ( logOutput [ 4 ] . msg ) . to . equal ( 'Fatal!' ) ;
907+
908+ expect ( logOutput [ 5 ] . s ) . to . equal ( 'D1' ) ;
909+ expect ( logOutput [ 5 ] . c ) . to . equal ( 'MONGOSH-SCRIPTS' ) ;
910+ expect ( logOutput [ 5 ] . ctx ) . to . equal ( 'custom-log' ) ;
911+ expect ( logOutput [ 5 ] . msg ) . to . equal ( 'Debug with level' ) ;
912+
913+ expect ( logOutput [ 6 ] . s ) . to . equal ( 'D1' ) ;
914+ expect ( logOutput [ 6 ] . c ) . to . equal ( 'MONGOSH-SCRIPTS' ) ;
915+ expect ( logOutput [ 6 ] . ctx ) . to . equal ( 'custom-log' ) ;
916+ expect ( logOutput [ 6 ] . msg ) . to . equal ( 'Debug without level' ) ;
917+
918+ expect ( analyticsOutput ) . to . deep . equal ( [
919+ [
920+ 'track' ,
921+ {
922+ anonymousId : undefined ,
923+ event : 'New Connection' ,
924+ properties : {
925+ mongosh_version : '1.0.0' ,
926+ session_id : '5fb3c20ee1507e894e5340f3' ,
927+ is_localhost : true ,
928+ is_atlas : false ,
929+ atlas_hostname : null ,
930+ node_version : 'v12.19.0' ,
931+ } ,
932+ } ,
933+ ] ,
934+ ] ) ;
935+ } ) ;
825936} ) ;
0 commit comments