From 087bedd47ed8877782db376ec1bcaa49241e840f Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Wed, 9 Oct 2024 09:40:11 -0700 Subject: [PATCH] add pokerogue-savedata-api test coverage --- src/plugins/api/pokerogue-savedata-api.ts | 2 +- .../api/pokerogue-savedata-api.test.ts | 55 +++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/test/plugins/api/pokerogue-savedata-api.test.ts diff --git a/src/plugins/api/pokerogue-savedata-api.ts b/src/plugins/api/pokerogue-savedata-api.ts index 7c5e0ca5b4f..184bfbb4bdb 100644 --- a/src/plugins/api/pokerogue-savedata-api.ts +++ b/src/plugins/api/pokerogue-savedata-api.ts @@ -35,7 +35,7 @@ export class PokerogueSavedataApi extends ApiBase { return await response.text(); } catch (err) { console.warn("Could not update all savedata!", err); - return null; + return "Unknown error"; } } } diff --git a/src/test/plugins/api/pokerogue-savedata-api.test.ts b/src/test/plugins/api/pokerogue-savedata-api.test.ts new file mode 100644 index 00000000000..7c48f369e8b --- /dev/null +++ b/src/test/plugins/api/pokerogue-savedata-api.test.ts @@ -0,0 +1,55 @@ +import type { UpdateAllSavedataRequest } from "#app/@types/PokerogueSavedataApi"; +import { PokerogueSavedataApi } from "#app/plugins/api/pokerogue-savedata-api"; +import { getApiBaseUrl } from "#app/test/utils/testUtils"; +import { http, HttpResponse } from "msw"; +import { setupServer } from "msw/node"; +import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; + +const apiBase = getApiBaseUrl(); +const savedataApi = new PokerogueSavedataApi(apiBase); +const server = setupServer(); + +beforeAll(() => { + server.listen({ onUnhandledRequest: "error" }); +}); + +afterAll(() => { + server.close(); +}); + +afterEach(() => { + server.resetHandlers(); +}); + +describe("Pokerogue Admin API", () => { + beforeEach(() => { + vi.spyOn(console, "warn"); + }); + + describe("Update All", () => { + it("should return an empty string on SUCCESS", async () => { + server.use(http.post(`${apiBase}/savedata/updateall`, () => HttpResponse.text(null))); + + const error = await savedataApi.updateAll({} as UpdateAllSavedataRequest); + + expect(error).toBe(""); + }); + + it("should return an error message on FAILURE", async () => { + server.use(http.post(`${apiBase}/savedata/updateall`, () => HttpResponse.text("Failed to update all!"))); + + const error = await savedataApi.updateAll({} as UpdateAllSavedataRequest); + + expect(error).toBe("Failed to update all!"); + }); + + it("should return 'Unknown error' and report a warning on ERROR", async () => { + server.use(http.post(`${apiBase}/savedata/updateall`, () => HttpResponse.error())); + + const error = await savedataApi.updateAll({} as UpdateAllSavedataRequest); + + expect(error).toBe("Unknown error"); + expect(console.warn).toHaveBeenCalledWith("Could not update all savedata!", expect.any(Error)); + }); + }); +});