Kyoo/api/tests/series/seed-serie.test.ts
2025-01-30 20:03:42 +01:00

36 lines
1.1 KiB
TypeScript

import { describe, expect, it } from "bun:test";
import { eq } from "drizzle-orm";
import { expectStatus } from "tests/utils";
import { db } from "~/db";
import { seasons, shows, videos } from "~/db/schema";
import { madeInAbyss, madeInAbyssVideo } from "~/models/examples";
import { createSerie } from "../helpers";
describe("Serie seeding", () => {
it("Can create a serie with seasons and episodes", async () => {
// create video beforehand to test linking
await db.insert(videos).values(madeInAbyssVideo);
const [resp, body] = await createSerie(madeInAbyss);
expectStatus(resp, body).toBe(201);
expect(body.id).toBeString();
expect(body.slug).toBe("made-in-abyss");
const ret = await db.query.shows.findFirst({
where: eq(shows.id, body.id),
with: {
seasons: { orderBy: seasons.seasonNumber },
entries: true,
},
});
expect(ret).not.toBeNull();
expect(ret!.seasons).toBeArrayOfSize(2);
expect(ret!.seasons[0].slug).toBe("made-in-abyss-s1");
expect(ret!.seasons[1].slug).toBe("made-in-abyss-s2");
// expect(ret!.entries).toBeArrayOfSize(
// madeInAbyss.entries.length + madeInAbyss.extras.length,
// );
});
});