@@ -63,6 +63,7 @@ describe('Logger', function() {
6363
6464 it ( 'should log error with action' , function ( ) {
6565 const error = new Error ( 'failed' ) ;
66+ error . data = { test : 'data' } ;
6667
6768 logger . fromError ( 'hi' , error , { details : 'here' } ) ;
6869
@@ -75,10 +76,12 @@ describe('Logger', function() {
7576 expect ( logArguments . error_name ) . to . eql ( error . name ) ;
7677 expect ( logArguments . error_stack ) . to . eql ( error . stack ) ;
7778 expect ( logArguments . error_message ) . to . eql ( error . message ) ;
79+ expect ( logArguments . error_data ) . to . eql ( JSON . stringify ( error . data ) ) ;
7880 } ) ;
7981
8082 it ( 'should log error as warning with action' , function ( ) {
8183 const error = new Error ( 'failed' ) ;
84+ error . data = { test : 'data' } ;
8285
8386 logger . warnFromError ( 'hi' , error , { details : 'here' } ) ;
8487
@@ -91,6 +94,42 @@ describe('Logger', function() {
9194 expect ( logArguments . error_name ) . to . eql ( error . name ) ;
9295 expect ( logArguments . error_stack ) . to . eql ( error . stack ) ;
9396 expect ( logArguments . error_message ) . to . eql ( error . message ) ;
97+ expect ( logArguments . error_data ) . to . eql ( JSON . stringify ( error . data ) ) ;
98+ } ) ;
99+
100+ it ( 'should not log error data when it is undefined' , function ( ) {
101+ const error = new Error ( 'failed' ) ;
102+
103+ logger . warnFromError ( 'hi' , error , { details : 'here' } ) ;
104+
105+ const logArguments = JSON . parse ( console . log . args [ 0 ] ) ;
106+ expect ( logArguments . name ) . to . eql ( 'mongo' ) ;
107+ expect ( logArguments . action ) . to . eql ( 'hi' ) ;
108+ expect ( logArguments . level ) . to . eql ( 40 ) ;
109+ expect ( logArguments . details ) . to . eql ( 'here' ) ;
110+
111+ expect ( logArguments . error_name ) . to . eql ( error . name ) ;
112+ expect ( logArguments . error_stack ) . to . eql ( error . stack ) ;
113+ expect ( logArguments . error_message ) . to . eql ( error . message ) ;
114+ expect ( logArguments ) . to . not . have . any . keys ( 'error_data' ) ;
115+ } ) ;
116+
117+ it ( 'should log only 3000 character of data' , function ( ) {
118+ const error = new Error ( 'failed' ) ;
119+ error . data = 'exactlyTen' . repeat ( 400 ) ;
120+
121+ logger . warnFromError ( 'hi' , error , { details : 'here' } ) ;
122+
123+ const logArguments = JSON . parse ( console . log . args [ 0 ] ) ;
124+ expect ( logArguments . name ) . to . eql ( 'mongo' ) ;
125+ expect ( logArguments . action ) . to . eql ( 'hi' ) ;
126+ expect ( logArguments . level ) . to . eql ( 40 ) ;
127+ expect ( logArguments . details ) . to . eql ( 'here' ) ;
128+
129+ expect ( logArguments . error_name ) . to . eql ( error . name ) ;
130+ expect ( logArguments . error_stack ) . to . eql ( error . stack ) ;
131+ expect ( logArguments . error_message ) . to . eql ( error . message ) ;
132+ expect ( logArguments . error_data . length ) . to . eql ( 3004 ) ;
94133 } ) ;
95134
96135 describe ( '#configure' , function ( ) {
0 commit comments