From b5460682c9a2d9e39e69fdf0aa9b124b27f6dbc9 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Sat, 1 Mar 2025 19:42:53 +0100 Subject: [PATCH] Test get seasons --- api/tests/helpers/series-helper.ts | 29 ++++++++++++++++++ .../{entries => series}/get-entries.test.ts | 0 api/tests/series/get-seasons.test.ts | 30 +++++++++++++++++++ 3 files changed, 59 insertions(+) rename api/tests/{entries => series}/get-entries.test.ts (100%) create mode 100644 api/tests/series/get-seasons.test.ts diff --git a/api/tests/helpers/series-helper.ts b/api/tests/helpers/series-helper.ts index eaa71c9a..8ff3580d 100644 --- a/api/tests/helpers/series-helper.ts +++ b/api/tests/helpers/series-helper.ts @@ -16,6 +16,35 @@ export const createSerie = async (serie: SeedSerie) => { return [resp, body] as const; }; +export const getSeasons = async ( + serie: string, + { + langs, + ...opts + }: { + filter?: string; + limit?: number; + after?: string; + sort?: string | string[]; + query?: string; + langs?: string; + preferOriginal?: boolean; + }, +) => { + const resp = await app.handle( + new Request(buildUrl(`series/${serie}/seasons`, opts), { + method: "GET", + headers: langs + ? { + "Accept-Language": langs, + } + : {}, + }), + ); + const body = await resp.json(); + return [resp, body] as const; +}; + export const getEntries = async ( serie: string, { diff --git a/api/tests/entries/get-entries.test.ts b/api/tests/series/get-entries.test.ts similarity index 100% rename from api/tests/entries/get-entries.test.ts rename to api/tests/series/get-entries.test.ts diff --git a/api/tests/series/get-seasons.test.ts b/api/tests/series/get-seasons.test.ts new file mode 100644 index 00000000..d49d751f --- /dev/null +++ b/api/tests/series/get-seasons.test.ts @@ -0,0 +1,30 @@ +import { beforeAll, describe, expect, it } from "bun:test"; +import { getSeasons } from "tests/helpers"; +import { expectStatus } from "tests/utils"; +import { seedSerie } from "~/controllers/seed/series"; +import { madeInAbyss } from "~/models/examples"; + +let miaId = ""; + +beforeAll(async () => { + const ret = await seedSerie(madeInAbyss); + if (!("status" in ret)) miaId = ret.id; +}); + +describe("Get seasons", () => { + it("Invalid slug", async () => { + const [resp, body] = await getSeasons("sotneuhn", { langs: "en" }); + + expectStatus(resp, body).toBe(404); + expect(body).toMatchObject({ + status: 404, + message: expect.any(String), + }); + }); + it("Default sort order", async () => { + const [resp, body] = await getSeasons(madeInAbyss.slug, { langs: "en" }); + + expectStatus(resp, body).toBe(200); + expect(body.items).toBeArrayOfSize(madeInAbyss.seasons.length); + }); +});