@@ -22,52 +22,66 @@ describe('parseRequest', () => {
2222    const  DEFAULT_USER_KEYS  =  [ 'id' ,  'username' ,  'email' ] ; 
2323    const  CUSTOM_USER_KEYS  =  [ 'custom_property' ] ; 
2424
25-     test ( 'parseRequest.user only contains the default properties from the user' ,  done  =>  { 
26-       const  fakeEvent : Event  =  { } ; 
27-       const  parsedRequest : Event  =  parseRequest ( fakeEvent ,  mockReq ) ; 
28-       const  userKeys  =  Object . keys ( parsedRequest . user ) ; 
29- 
30-       expect ( userKeys ) . toEqual ( DEFAULT_USER_KEYS ) ; 
31-       expect ( userKeys ) . not . toEqual ( expect . arrayContaining ( CUSTOM_USER_KEYS ) ) ; 
32-       done ( ) ; 
25+     test ( 'parseRequest.user only contains the default properties from the user' ,  ( )  =>  { 
26+       const  parsedRequest : Event  =  parseRequest ( { } ,  mockReq ,  { 
27+         user : DEFAULT_USER_KEYS , 
28+       } ) ; 
29+       expect ( Object . keys ( parsedRequest . user  as  any [ ] ) ) . toEqual ( DEFAULT_USER_KEYS ) ; 
3330    } ) ; 
3431
35-     test ( 'parseRequest.user only contains the custom properties specified in the options.user array' ,  done  =>  { 
36-       const  options   =  { 
32+     test ( 'parseRequest.user only contains the custom properties specified in the options.user array' ,  ( )  =>  { 
33+       const  parsedRequest :  Event   =   parseRequest ( { } ,   mockReq ,  { 
3734        user : CUSTOM_USER_KEYS , 
38-       } ; 
39-       const   fakeEvent :  Event   =   { } ; 
40-        const   parsedRequest :  Event   =   parseRequest ( fakeEvent ,   mockReq ,   options ) ; 
41-        const   userKeys   =   Object . keys ( parsedRequest . user ) ; 
35+       } ) ; 
36+       expect ( Object . keys ( parsedRequest . user   as   any [ ] ) ) . toEqual ( CUSTOM_USER_KEYS ) ; 
37+     } ) ; 
38+   } ) ; 
4239
43-       expect ( userKeys ) . toEqual ( CUSTOM_USER_KEYS ) ; 
44-       expect ( userKeys ) . not . toEqual ( expect . arrayContaining ( DEFAULT_USER_KEYS ) ) ; 
45-       done ( ) ; 
40+   describe ( 'parseRequest.ip property' ,  ( )  =>  { 
41+     test ( 'can be extracted from req.ip' ,  ( )  =>  { 
42+       const  parsedRequest : Event  =  parseRequest ( 
43+         { } , 
44+         { 
45+           ...mockReq , 
46+           ip : '123' , 
47+         } , 
48+         { 
49+           ip : true , 
50+         } , 
51+       ) ; 
52+       expect ( parsedRequest . user ! . ip_address ) . toEqual ( '123' ) ; 
53+     } ) ; 
54+ 
55+     test ( 'can extract from req.connection.remoteAddress' ,  ( )  =>  { 
56+       const  parsedRequest : Event  =  parseRequest ( 
57+         { } , 
58+         { 
59+           ...mockReq , 
60+           connection : { 
61+             remoteAddress : '321' , 
62+           } , 
63+         } , 
64+         { 
65+           ip : true , 
66+         } , 
67+       ) ; 
68+       expect ( parsedRequest . user ! . ip_address ) . toEqual ( '321' ) ; 
4669    } ) ; 
4770  } ) ; 
4871
4972  describe ( 'parseRequest.request properties' ,  ( )  =>  { 
50-     test ( 'parseRequest.request only contains the default set of properties from the request' ,  done  =>  { 
73+     test ( 'parseRequest.request only contains the default set of properties from the request' ,  ( )  =>  { 
5174      const  DEFAULT_REQUEST_PROPERTIES  =  [ 'cookies' ,  'data' ,  'headers' ,  'method' ,  'query_string' ,  'url' ] ; 
52-       const  fakeEvent : Event  =  { } ; 
53-       const  parsedRequest : Event  =  parseRequest ( fakeEvent ,  mockReq ,  { } ) ; 
54-       expect ( Object . keys ( parsedRequest . request ) ) . toEqual ( DEFAULT_REQUEST_PROPERTIES ) ; 
55-       done ( ) ; 
75+       const  parsedRequest : Event  =  parseRequest ( { } ,  mockReq ,  { } ) ; 
76+       expect ( Object . keys ( parsedRequest . request  as  any [ ] ) ) . toEqual ( DEFAULT_REQUEST_PROPERTIES ) ; 
5677    } ) ; 
5778
58-     test ( 'parseRequest.request only contains the specified properties in the options.request array' ,  done  =>  { 
59-       const  EXCLUDED_PROPERTIES  =  [ 'cookies' ,  'method' ] ; 
79+     test ( 'parseRequest.request only contains the specified properties in the options.request array' ,  ( )  =>  { 
6080      const  INCLUDED_PROPERTIES  =  [ 'data' ,  'headers' ,  'query_string' ,  'url' ] ; 
61-       const  options   =  { 
81+       const  parsedRequest :  Event   =   parseRequest ( { } ,   mockReq ,  { 
6282        request : INCLUDED_PROPERTIES , 
63-       } ; 
64-       const  fakeEvent : Event  =  { } ; 
65-       const  parsedRequest : Event  =  parseRequest ( fakeEvent ,  mockReq ,  options ) ; 
66-       const  requestKeys  =  Object . keys ( parsedRequest . request ) ; 
67- 
68-       expect ( requestKeys ) . toEqual ( INCLUDED_PROPERTIES ) ; 
69-       expect ( requestKeys ) . not . toEqual ( expect . arrayContaining ( EXCLUDED_PROPERTIES ) ) ; 
70-       done ( ) ; 
83+       } ) ; 
84+       expect ( Object . keys ( parsedRequest . request  as  any [ ] ) ) . toEqual ( [ 'data' ,  'headers' ,  'query_string' ,  'url' ] ) ; 
7185    } ) ; 
7286  } ) ; 
7387} ) ; 
0 commit comments