From 8e947093b5fa1e0c81d785a55919acea8c3baa7f Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Tue, 1 Apr 2025 08:52:52 -0500 Subject: [PATCH] feat: Improve handling request errors with message --- src/RESTController.ts | 2 +- src/__tests__/RESTController-test.js | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/RESTController.ts b/src/RESTController.ts index 8185d65af..4e66140d5 100644 --- a/src/RESTController.ts +++ b/src/RESTController.ts @@ -334,7 +334,7 @@ const RESTController = { if (response && response.responseText) { try { const errorJSON = JSON.parse(response.responseText); - error = new ParseError(errorJSON.code, errorJSON.error); + error = new ParseError(errorJSON.code, errorJSON.error || errorJSON.message); } catch (_) { // If we fail to parse the error text, that's okay. error = new ParseError( diff --git a/src/__tests__/RESTController-test.js b/src/__tests__/RESTController-test.js index 5f9d3671b..155d56389 100644 --- a/src/__tests__/RESTController-test.js +++ b/src/__tests__/RESTController-test.js @@ -175,6 +175,25 @@ describe('RESTController', () => { }); }); + it('handles request errors with message', done => { + RESTController._setXHR( + mockXHR([ + { + status: 400, + response: { + code: 1, + message: 'Internal server error.', + }, + }, + ]) + ); + RESTController.request('GET', 'classes/MyObject', {}, {}).then(null, error => { + expect(error.code).toBe(1); + expect(error.message).toBe('Internal server error.'); + done(); + }); + }); + it('handles invalid responses', done => { const XHR = function () {}; XHR.prototype = {