@@ -84,19 +84,21 @@ describe('RESTController', () => {
8484 } ) ;
8585
8686 it ( 'aborts after too many failures' , async ( ) => {
87- expect . assertions ( 1 ) ;
87+ expect . assertions ( 3 ) ;
8888 mockFetch ( [
89- { status : 500 } ,
90- { status : 500 } ,
91- { status : 500 } ,
92- { status : 500 } ,
93- { status : 500 } ,
89+ { status : 500 , response : { code : 1 , error : 'Internal server error.' } } ,
90+ { status : 500 , response : { code : 1 , error : 'Internal server error.' } } ,
91+ { status : 500 , response : { code : 1 , error : 'Internal server error.' } } ,
92+ { status : 500 , response : { code : 1 , error : 'Internal server error.' } } ,
93+ { status : 500 , response : { code : 1 , error : 'Internal server error.' } } ,
9494 { status : 200 , response : { success : true } } ,
9595 ] ) ;
9696 try {
9797 await RESTController . ajax ( 'POST' , 'users' , { } ) ;
9898 } catch ( fetchError ) {
9999 expect ( fetchError ) . not . toBe ( undefined ) ;
100+ expect ( fetchError . code ) . toBe ( 1 ) ;
101+ expect ( fetchError . error ) . toBe ( 'Internal server error.' ) ;
100102 }
101103 } ) ;
102104
@@ -178,6 +180,23 @@ describe('RESTController', () => {
178180 }
179181 } ) ;
180182
183+ it ( 'handles 5xx errors after retries' , async ( ) => {
184+ expect . assertions ( 2 ) ;
185+ mockFetch ( [
186+ { status : 500 , response : { code : 1 , error : 'Internal server error.' } } ,
187+ { status : 500 , response : { code : 1 , error : 'Internal server error.' } } ,
188+ { status : 500 , response : { code : 1 , error : 'Internal server error.' } } ,
189+ { status : 500 , response : { code : 1 , error : 'Internal server error.' } } ,
190+ { status : 500 , response : { code : 1 , error : 'Internal server error.' } } ,
191+ ] ) ;
192+ try {
193+ await RESTController . request ( 'GET' , 'classes/MyObject' , { } , { } ) ;
194+ } catch ( error ) {
195+ expect ( error . code ) . toBe ( 1 ) ;
196+ expect ( error . message ) . toBe ( 'Internal server error.' ) ;
197+ }
198+ } ) ;
199+
181200 it ( 'handles X-Parse-Job-Status-Id header' , async ( ) => {
182201 mockFetch ( [ { status : 200 , response : { results : [ ] } } ] , headers ) ;
183202 const response = await RESTController . request (
0 commit comments