mirror of
https://github.com/Kir-Antipov/mc-publish.git
synced 2024-11-22 00:11:02 -05:00
Added tests for curseforge-eternal-api-client
This commit is contained in:
parent
202593d713
commit
ee6d69a543
1 changed files with 60 additions and 0 deletions
|
@ -0,0 +1,60 @@
|
|||
import { createFakeFetch } from "../../../utils/fetch-utils";
|
||||
import { HttpResponse } from "@/utils/net/http-response";
|
||||
import { CURSEFORGE_ETERNAL_API_URL, CurseForgeEternalApiClient } from "@/platforms/curseforge/curseforge-eternal-api-client";
|
||||
|
||||
const DB = Object.freeze([
|
||||
{ id: 2, slug: "mod-id-2" },
|
||||
{ id: 1, slug: "mod-id" },
|
||||
]);
|
||||
|
||||
const ETERNAL_FETCH = createFakeFetch({
|
||||
baseUrl: CURSEFORGE_ETERNAL_API_URL,
|
||||
requiredHeaders: ["X-Api-Key"],
|
||||
|
||||
GET: {
|
||||
"^\\/mods\\/search\\?(?:gameId=432&)?slug=([^&]*)": ([slug]) => {
|
||||
const mods = DB.filter(x => x.slug.includes(slug));
|
||||
return { data: mods };
|
||||
},
|
||||
|
||||
"^\\/mods\\/(\\d+)": ([id]) => {
|
||||
const mod = DB.find(x => x.id === +id);
|
||||
return mod ? { data: mod } : HttpResponse.json({ success: false }, { status: 404 });
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
describe("CurseForgeEternalApiClient", () => {
|
||||
describe("getProject", () => {
|
||||
test("returns a project with the specified slug", async () => {
|
||||
const api = new CurseForgeEternalApiClient({ fetch: ETERNAL_FETCH });
|
||||
|
||||
expect(await api.getProject("mod-id")).toHaveProperty("slug", "mod-id");
|
||||
expect(await api.getProject("mod-id-2")).toHaveProperty("slug", "mod-id-2");
|
||||
});
|
||||
|
||||
test("returns a project with the specified id", async () => {
|
||||
const api = new CurseForgeEternalApiClient({ fetch: ETERNAL_FETCH });
|
||||
|
||||
expect(await api.getProject(1)).toHaveProperty("id", 1);
|
||||
expect(await api.getProject("1")).toHaveProperty("id", 1);
|
||||
|
||||
expect(await api.getProject(2)).toHaveProperty("id", 2);
|
||||
expect(await api.getProject("2")).toHaveProperty("id", 2);
|
||||
});
|
||||
|
||||
test("returns undefined if project with the given slug doesn't exist", async () => {
|
||||
const api = new CurseForgeEternalApiClient({ fetch: ETERNAL_FETCH });
|
||||
|
||||
expect(await api.getProject("mod-id-3")).toBeUndefined();
|
||||
expect(await api.getProject("mod-id-4")).toBeUndefined();
|
||||
});
|
||||
|
||||
test("returns undefined if project with the given id doesn't exist", async () => {
|
||||
const api = new CurseForgeEternalApiClient({ fetch: ETERNAL_FETCH });
|
||||
|
||||
expect(await api.getProject(3)).toBeUndefined();
|
||||
expect(await api.getProject("3")).toBeUndefined();
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in a new issue