From 7c6687813d0eb9944268e978f2954ffaa6af039c Mon Sep 17 00:00:00 2001 From: Kira Pilot Date: Wed, 11 Oct 2023 13:54:58 -0400 Subject: [PATCH] fix(site): ensure empty string error shows default message (#10196) * fix(site): ensure empty string error shows default message * added test * added logging * asserting axios message * cleanup and add test --- site/src/api/errors.test.ts | 18 ++++++++++++++++++ site/src/api/errors.ts | 7 +++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/site/src/api/errors.test.ts b/site/src/api/errors.test.ts index d3612b254e..f17a178711 100644 --- a/site/src/api/errors.test.ts +++ b/site/src/api/errors.test.ts @@ -3,6 +3,7 @@ import { getValidationErrorMessage, isApiError, mapApiErrorToFieldErrors, + getErrorMessage, } from "./errors"; describe("isApiError", () => { @@ -82,4 +83,21 @@ describe("getValidationErrorMessage", () => { ), ).toEqual(""); }); + + it("returns default message for error that is empty string", () => { + expect(getErrorMessage("", "Something went wrong.")).toBe( + "Something went wrong.", + ); + }); + + it("returns default message for 404 API response", () => { + expect( + getErrorMessage( + mockApiError({ + message: "", + }), + "Something went wrong.", + ), + ).toBe("Something went wrong."); + }); }); diff --git a/site/src/api/errors.ts b/site/src/api/errors.ts index b7fbd0c7d7..953eefa47b 100644 --- a/site/src/api/errors.ts +++ b/site/src/api/errors.ts @@ -62,10 +62,13 @@ export const getErrorMessage = ( error: unknown, defaultMessage: string, ): string => { - if (isApiError(error)) { + // if error is API error + // 404s result in the default message being returned + if (isApiError(error) && error.response.data.message) { return error.response.data.message; } - if (typeof error === "string") { + // if error is a non-empty string + if (error && typeof error === "string") { return error; } return defaultMessage;