diff --git a/package-lock.json b/package-lock.json index 55305e9..6f5ee13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "steamgriddb", - "version": "2.2.1", + "version": "2.2.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "steamgriddb", - "version": "2.2.1", + "version": "2.2.2", "license": "MIT", "dependencies": { "axios": "^1.7.2" diff --git a/package.json b/package.json index 8051c3a..6e8d555 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "steamgriddb", - "version": "2.2.1", + "version": "2.2.2", "description": "Node.js Wrapper for the SteamGridDB API", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/index.ts b/src/index.ts index f7fd742..1cd72bd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -136,7 +136,7 @@ export default class SGDB { try { response = await axios(options as AxiosRequestConfig); } catch (error) { - error.message = error.response.data?.errors?.join(", ") ?? error.message; + error.message = error.response?.data?.errors?.join(", ") ?? error.message; throw error; } diff --git a/test/index.test.ts b/test/index.test.ts index fc8e38f..0f0b70e 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -91,3 +91,42 @@ it("should be deletable", async () => { const response = await client.deleteGrids([123123]); expect(response).toBe(true); }); + +it("should derive error message from response errors", async () => { + nock("https://www.steamgriddb.com") + .get("/api/v2/games/steam/1234") + .replyWithError({message: "default error msg", response: {data: {errors: ["error_0", "error_1"]}}}); + + expect.assertions(1); + try { + await client.getGameBySteamAppId(1234); + } catch (e) { + expect(e.message).toEqual("error_0, error_1"); + } +}); + +it("should default to message returned in error", async () => { + nock("https://www.steamgriddb.com") + .get("/api/v2/games/steam/1234") + .replyWithError({message: "default error msg", response: {}}); + + expect.assertions(1); + try { + await client.getGameBySteamAppId(1234); + } catch (e) { + expect(e.message).toEqual("default error msg"); + } +}); + +it("should handle undefined response object in error", async () => { + nock("https://www.steamgriddb.com") + .get("/api/v2/games/steam/1234") + .replyWithError({message: "default error msg"}); + + expect.assertions(1); + try { + await client.getGameBySteamAppId(1234); + } catch (e) { + expect(e.message).toEqual("default error msg"); + } +});