Skip to content

Commit 7c66878

Browse files
authored
fix(site): ensure empty string error shows default message (coder#10196)
* fix(site): ensure empty string error shows default message * added test * added logging * asserting axios message * cleanup and add test
1 parent 59ae69b commit 7c66878

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

site/src/api/errors.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
getValidationErrorMessage,
44
isApiError,
55
mapApiErrorToFieldErrors,
6+
getErrorMessage,
67
} from "./errors";
78

89
describe("isApiError", () => {
@@ -82,4 +83,21 @@ describe("getValidationErrorMessage", () => {
8283
),
8384
).toEqual("");
8485
});
86+
87+
it("returns default message for error that is empty string", () => {
88+
expect(getErrorMessage("", "Something went wrong.")).toBe(
89+
"Something went wrong.",
90+
);
91+
});
92+
93+
it("returns default message for 404 API response", () => {
94+
expect(
95+
getErrorMessage(
96+
mockApiError({
97+
message: "",
98+
}),
99+
"Something went wrong.",
100+
),
101+
).toBe("Something went wrong.");
102+
});
85103
});

site/src/api/errors.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,13 @@ export const getErrorMessage = (
6262
error: unknown,
6363
defaultMessage: string,
6464
): string => {
65-
if (isApiError(error)) {
65+
// if error is API error
66+
// 404s result in the default message being returned
67+
if (isApiError(error) && error.response.data.message) {
6668
return error.response.data.message;
6769
}
68-
if (typeof error === "string") {
70+
// if error is a non-empty string
71+
if (error && typeof error === "string") {
6972
return error;
7073
}
7174
return defaultMessage;

0 commit comments

Comments
 (0)