@@ -22,52 +22,66 @@ describe('parseRequest', () => {
22
22
const DEFAULT_USER_KEYS = [ 'id' , 'username' , 'email' ] ;
23
23
const CUSTOM_USER_KEYS = [ 'custom_property' ] ;
24
24
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 ) ;
33
30
} ) ;
34
31
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 , {
37
34
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
+ } ) ;
42
39
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' ) ;
46
69
} ) ;
47
70
} ) ;
48
71
49
72
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' , ( ) => {
51
74
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 ) ;
56
77
} ) ;
57
78
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' , ( ) => {
60
80
const INCLUDED_PROPERTIES = [ 'data' , 'headers' , 'query_string' , 'url' ] ;
61
- const options = {
81
+ const parsedRequest : Event = parseRequest ( { } , mockReq , {
62
82
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' ] ) ;
71
85
} ) ;
72
86
} ) ;
73
87
} ) ;
0 commit comments