@@ -3,12 +3,12 @@ import { parseRequest } from '../src/handlers';
3
3
4
4
describe ( 'parseRequest' , ( ) => {
5
5
const mockReq = {
6
- body : '' ,
6
+ body : 'foo ' ,
7
7
cookies : { test : 'test' } ,
8
8
headers : {
9
9
host : 'mattrobenolt.com' ,
10
10
} ,
11
- method : 'GET ' ,
11
+ method : 'POST ' ,
12
12
url : '/some/path?key=value' ,
13
13
user : {
14
14
custom_property : 'foo' ,
@@ -72,16 +72,22 @@ describe('parseRequest', () => {
72
72
describe ( 'parseRequest.request properties' , ( ) => {
73
73
test ( 'parseRequest.request only contains the default set of properties from the request' , ( ) => {
74
74
const DEFAULT_REQUEST_PROPERTIES = [ 'cookies' , 'data' , 'headers' , 'method' , 'query_string' , 'url' ] ;
75
- const parsedRequest : Event = parseRequest ( { } , mockReq , { } ) ;
76
- expect ( Object . keys ( parsedRequest . request as any [ ] ) ) . toEqual ( DEFAULT_REQUEST_PROPERTIES ) ;
75
+ const parsedRequest : Event = parseRequest ( { } , mockReq ) ;
76
+ expect ( Object . keys ( parsedRequest . request as { } ) ) . toEqual ( DEFAULT_REQUEST_PROPERTIES ) ;
77
77
} ) ;
78
78
79
79
test ( 'parseRequest.request only contains the specified properties in the options.request array' , ( ) => {
80
80
const INCLUDED_PROPERTIES = [ 'data' , 'headers' , 'query_string' , 'url' ] ;
81
81
const parsedRequest : Event = parseRequest ( { } , mockReq , {
82
82
request : INCLUDED_PROPERTIES ,
83
83
} ) ;
84
- expect ( Object . keys ( parsedRequest . request as any [ ] ) ) . toEqual ( [ 'data' , 'headers' , 'query_string' , 'url' ] ) ;
84
+ expect ( Object . keys ( parsedRequest . request as { } ) ) . toEqual ( INCLUDED_PROPERTIES ) ;
85
+ } ) ;
86
+
87
+ test ( 'parseRequest.request skips `body` property for GET and HEAD requests' , ( ) => {
88
+ expect ( parseRequest ( { } , mockReq , { } ) . request ) . toHaveProperty ( 'data' ) ;
89
+ expect ( parseRequest ( { } , { ...mockReq , method : 'GET' } , { } ) . request ) . not . toHaveProperty ( 'data' ) ;
90
+ expect ( parseRequest ( { } , { ...mockReq , method : 'HEAD' } , { } ) . request ) . not . toHaveProperty ( 'data' ) ;
85
91
} ) ;
86
92
} ) ;
87
93
} ) ;
0 commit comments