From 268cb6de5889397e2f9a0f5314fd5d18ef0f40fe Mon Sep 17 00:00:00 2001 From: Constance Chen Date: Tue, 15 Sep 2020 19:58:15 -0700 Subject: [PATCH 1/2] =?UTF-8?q?Fix=20missing=20export=20=F0=9F=A4=A6?= =?UTF-8?q?=E2=80=8D=E2=99=80=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../public/applications/shared/flash_messages/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/index.ts b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/index.ts index 74e233ad6b320..c03954179184e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/index.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/index.ts @@ -12,3 +12,4 @@ export { IFlashMessagesActions, } from './flash_messages_logic'; export { FlashMessagesProvider } from './flash_messages_provider'; +export { flashAPIErrors } from './handle_api_errors'; From 2128958a5a5e3835eafbfd3adac9e47a25d38aca Mon Sep 17 00:00:00 2001 From: Constance Chen Date: Tue, 15 Sep 2020 19:59:40 -0700 Subject: [PATCH 2/2] Add fallback for http errors without an errors array - all http error messages should still be expected to contain a message key, so should be a reliable fallback --- .../flash_messages/handle_api_errors.test.ts | 14 ++++++++++++++ .../shared/flash_messages/handle_api_errors.ts | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/handle_api_errors.test.ts b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/handle_api_errors.test.ts index 6f2aec757eb37..c30631329b79d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/handle_api_errors.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/handle_api_errors.test.ts @@ -52,6 +52,20 @@ describe('flashAPIErrors', () => { ]); }); + it('falls back to the basic message for http responses without an errors array', () => { + flashAPIErrors({ + body: { + statusCode: 404, + error: 'Not Found', + message: 'Not Found', + }, + } as any); + + expect(FlashMessagesLogic.actions.setFlashMessages).toHaveBeenCalledWith([ + { type: 'error', message: 'Not Found' }, + ]); + }); + it('displays a generic error message and re-throws non-API errors', () => { try { flashAPIErrors(Error('whatever') as any); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/handle_api_errors.ts b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/handle_api_errors.ts index 5e56c4fb0bd22..2bd04d1d87f7d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/handle_api_errors.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/handle_api_errors.ts @@ -40,7 +40,7 @@ export const flashAPIErrors = ( const errorFlashMessages: IFlashMessage[] = Array.isArray(error?.body?.attributes?.errors) ? error.body!.attributes.errors.map((message) => ({ type: 'error', message })) - : [{ type: 'error', message: defaultErrorMessage }]; + : [{ type: 'error', message: error?.body?.message || defaultErrorMessage }]; if (isQueued) { FlashMessagesLogic.actions.setQueuedMessages(errorFlashMessages);