@@ -37,18 +37,34 @@ test.group('Response | error handling', (group) => {
3737 assert . equal ( response . status ( ) , 401 )
3838 } )
3939
40- test ( 'raise fatal errors raised by the server ' , async ( { assert } ) => {
40+ test ( 'returns ApiResponse for 500 errors ' , async ( { assert } ) => {
4141 httpServer . onRequest ( ( _ , res ) => {
42- try {
43- throw new Error ( 'Something went wrong' )
44- } catch ( error ) {
45- res . statusCode = 500
46- res . end ( error . stack )
47- }
42+ res . statusCode = 500
43+ res . end ( 'Internal server error' )
44+ } )
45+
46+ const request = new ApiRequest ( { baseUrl : httpServer . baseUrl , method : 'GET' , endpoint : '/' } )
47+ const response = await request
48+
49+ assert . equal ( response . status ( ) , 500 )
50+ assert . isTrue ( response . hasFatalError ( ) )
51+ assert . isTrue ( response . hasServerError ( ) )
52+ } )
53+
54+ test ( 'handles server errors with response body' , async ( { assert } ) => {
55+ httpServer . onRequest ( ( _ , res ) => {
56+ res . statusCode = 500
57+ res . setHeader ( 'Content-Type' , 'application/json' )
58+ res . end ( JSON . stringify ( { error : 'Something went wrong' , code : 'INTERNAL_ERROR' } ) )
4859 } )
4960
5061 const request = new ApiRequest ( { baseUrl : httpServer . baseUrl , method : 'GET' , endpoint : '/' } )
62+ const response = await request
5163
52- await assert . rejects ( ( ) => request , 'Error: Something went wrong' )
64+ assert . equal ( response . status ( ) , 500 )
65+ assert . deepEqual ( response . body ( ) , {
66+ error : 'Something went wrong' ,
67+ code : 'INTERNAL_ERROR' ,
68+ } )
5369 } )
5470} )
0 commit comments