@@ -2,7 +2,7 @@ import RequestBuilder from '../../src/Backend/RequestBuilder';
22
33describe ( 'buildRequest' , ( ) => {
44 it ( 'sets basic data on GET request' , ( ) => {
5- const builder = new RequestBuilder ( '/_components?existing_param=1' , '_the_csrf_token' ) ;
5+ const builder = new RequestBuilder ( '/_components?existing_param=1' , 'get' , ' _the_csrf_token') ;
66 const { url, fetchOptions } = builder . buildRequest (
77 { firstName : 'Ryan' } ,
88 [ ] ,
@@ -21,7 +21,7 @@ describe('buildRequest', () => {
2121 } ) ;
2222
2323 it ( 'sets basic data on POST request' , ( ) => {
24- const builder = new RequestBuilder ( '/_components' , '_the_csrf_token' ) ;
24+ const builder = new RequestBuilder ( '/_components' , 'post' , ' _the_csrf_token') ;
2525 const { url, fetchOptions } = builder . buildRequest (
2626 { firstName : 'Ryan' } ,
2727 [ {
@@ -52,7 +52,7 @@ describe('buildRequest', () => {
5252 } ) ;
5353
5454 it ( 'sets basic data on POST request with batch actions' , ( ) => {
55- const builder = new RequestBuilder ( '/_components' , '_the_csrf_token' ) ;
55+ const builder = new RequestBuilder ( '/_components' , 'post' , ' _the_csrf_token') ;
5656 const { url, fetchOptions } = builder . buildRequest (
5757 { firstName : 'Ryan' } ,
5858 [ {
@@ -87,7 +87,7 @@ describe('buildRequest', () => {
8787
8888 // when data is too long it makes a post request
8989 it ( 'makes a POST request when data is too long' , ( ) => {
90- const builder = new RequestBuilder ( '/_components' , '_the_csrf_token' ) ;
90+ const builder = new RequestBuilder ( '/_components' , 'get' , ' _the_csrf_token') ;
9191 const { url, fetchOptions } = builder . buildRequest (
9292 { firstName : 'Ryan' . repeat ( 1000 ) } ,
9393 [ ] ,
@@ -112,8 +112,38 @@ describe('buildRequest', () => {
112112 } ) ) ;
113113 } ) ;
114114
115+ it ( 'makes a POST request when method is post' , ( ) => {
116+ const builder = new RequestBuilder ( '/_components' , 'post' , '_the_csrf_token' ) ;
117+ const { url, fetchOptions } = builder . buildRequest (
118+ {
119+ firstName : 'Ryan'
120+ } ,
121+ [ ] ,
122+ { firstName : 'Kevin' } ,
123+ { } ,
124+ { } ,
125+ { }
126+ ) ;
127+
128+ expect ( url ) . toEqual ( '/_components' ) ;
129+ expect ( fetchOptions . method ) . toEqual ( 'POST' ) ;
130+ expect ( fetchOptions . headers ) . toEqual ( {
131+ // no token
132+ Accept : 'application/vnd.live-component+html' ,
133+ 'X-Requested-With' : 'XMLHttpRequest' ,
134+ } ) ;
135+ const body = < FormData > fetchOptions . body ;
136+ expect ( body ) . toBeInstanceOf ( FormData ) ;
137+ expect ( body . get ( 'data' ) ) . toEqual ( JSON . stringify ( {
138+ props : {
139+ firstName : 'Ryan'
140+ } ,
141+ updated : { firstName : 'Kevin' } ,
142+ } ) ) ;
143+ } ) ;
144+
115145 it ( 'sends propsFromParent when specified' , ( ) => {
116- const builder = new RequestBuilder ( '/_components?existing_param=1' , '_the_csrf_token' ) ;
146+ const builder = new RequestBuilder ( '/_components?existing_param=1' , 'get' , ' _the_csrf_token') ;
117147 const { url } = builder . buildRequest (
118148 { firstName : 'Ryan' } ,
119149 [ ] ,
@@ -167,7 +197,7 @@ describe('buildRequest', () => {
167197 } ;
168198
169199 it ( 'Sends file with request' , ( ) => {
170- const builder = new RequestBuilder ( '/_components' , '_the_csrf_token' ) ;
200+ const builder = new RequestBuilder ( '/_components' , 'post' , ' _the_csrf_token') ;
171201
172202 const { url, fetchOptions } = builder . buildRequest (
173203 { firstName : 'Ryan' } ,
@@ -192,7 +222,7 @@ describe('buildRequest', () => {
192222 } ) ;
193223
194224 it ( 'Sends multiple files with request' , ( ) => {
195- const builder = new RequestBuilder ( '/_components' , '_the_csrf_token' ) ;
225+ const builder = new RequestBuilder ( '/_components' , 'post' , ' _the_csrf_token') ;
196226
197227 const { url, fetchOptions } = builder . buildRequest (
198228 { firstName : 'Ryan' } ,
0 commit comments