@@ -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