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
This commit is contained in:
Kira Pilot
2023-10-11 13:54:58 -04:00
committed by GitHub
parent 59ae69b7f2
commit 7c6687813d
2 changed files with 23 additions and 2 deletions

View File

@ -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.");
});
});

View File

@ -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;