refactor!: migrate away from bun
- migrate package management to pnpm - migrate test suite to vitest - also remove Anify integration
This commit is contained in:
@@ -1,31 +1,81 @@
|
||||
import { describe, expect, it } from "bun:test";
|
||||
|
||||
import app from "~/index";
|
||||
import { server } from "~/mocks";
|
||||
|
||||
server.listen();
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
describe('requests the "/title" route', () => {
|
||||
let app: typeof import("~/index").app;
|
||||
let fetchFromMultipleSources: typeof import("~/libs/fetchFromMultipleSources").fetchFromMultipleSources;
|
||||
|
||||
beforeEach(async () => {
|
||||
vi.resetModules();
|
||||
|
||||
vi.doMock("~/libs/useMockData", () => ({
|
||||
useMockData: () => false,
|
||||
}));
|
||||
|
||||
vi.doMock("~/libs/fetchFromMultipleSources", () => ({
|
||||
fetchFromMultipleSources: vi.fn(),
|
||||
}));
|
||||
|
||||
app = (await import("~/index")).app;
|
||||
fetchFromMultipleSources = (await import("~/libs/fetchFromMultipleSources"))
|
||||
.fetchFromMultipleSources;
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.doUnmock("~/libs/fetchFromMultipleSources");
|
||||
vi.doUnmock("~/libs/useMockData");
|
||||
vi.restoreAllMocks();
|
||||
});
|
||||
|
||||
const mockTitleFn = (id: number) => ({
|
||||
id,
|
||||
title: {
|
||||
userPreferred: "Test Title",
|
||||
english: "Test Title English",
|
||||
},
|
||||
description: "Test Description",
|
||||
coverImage: {
|
||||
extraLarge: "https://example.com/cover.png",
|
||||
large: "https://example.com/cover.png",
|
||||
medium: "https://example.com/cover.png",
|
||||
},
|
||||
bannerImage: "https://example.com/banner.png",
|
||||
});
|
||||
|
||||
it("with a valid id & token", async () => {
|
||||
vi.mocked(fetchFromMultipleSources).mockResolvedValue({
|
||||
result: mockTitleFn(10) as any,
|
||||
errorOccurred: false,
|
||||
});
|
||||
|
||||
const response = await app.request("/title?id=10", {
|
||||
headers: new Headers({ "x-anilist-token": "asd" }),
|
||||
});
|
||||
|
||||
expect(response.json()).resolves.toMatchSnapshot();
|
||||
expect(await response.json()).toMatchSnapshot();
|
||||
expect(response.status).toBe(200);
|
||||
});
|
||||
|
||||
it("with a valid id but no token", async () => {
|
||||
vi.mocked(fetchFromMultipleSources).mockResolvedValue({
|
||||
result: mockTitleFn(10) as any,
|
||||
errorOccurred: false,
|
||||
});
|
||||
|
||||
const response = await app.request("/title?id=10");
|
||||
|
||||
expect(response.json()).resolves.toMatchSnapshot();
|
||||
expect(await response.json()).toMatchSnapshot();
|
||||
expect(response.status).toBe(200);
|
||||
});
|
||||
|
||||
it("with an unknown title from all sources", async () => {
|
||||
vi.mocked(fetchFromMultipleSources).mockResolvedValue({
|
||||
result: null,
|
||||
errorOccurred: false,
|
||||
});
|
||||
|
||||
const response = await app.request("/title?id=-1");
|
||||
|
||||
expect(response.json()).resolves.toEqual({ success: false });
|
||||
expect(await response.json()).toEqual({ success: false });
|
||||
expect(response.status).toBe(404);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user