refactor!: migrate away from bun
- migrate package management to pnpm - migrate test suite to vitest - also remove Anify integration
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,21 +1,74 @@
|
||||
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 "/search" route', () => {
|
||||
let app: typeof import("~/index").app;
|
||||
let fetchFromMultipleSources: typeof import("~/libs/fetchFromMultipleSources").fetchFromMultipleSources;
|
||||
|
||||
beforeEach(async () => {
|
||||
vi.resetModules();
|
||||
|
||||
// Mock useMockData
|
||||
vi.doMock("~/libs/useMockData", () => ({
|
||||
useMockData: () => false,
|
||||
}));
|
||||
|
||||
// Mock fetchFromMultipleSources
|
||||
vi.doMock("~/libs/fetchFromMultipleSources", () => ({
|
||||
fetchFromMultipleSources: vi.fn(),
|
||||
}));
|
||||
|
||||
const indexModule = await import("~/index");
|
||||
app = indexModule.app;
|
||||
|
||||
const fetchModule = await import("~/libs/fetchFromMultipleSources");
|
||||
fetchFromMultipleSources = fetchModule.fetchFromMultipleSources;
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.doUnmock("~/libs/fetchFromMultipleSources");
|
||||
vi.doUnmock("~/libs/useMockData");
|
||||
vi.restoreAllMocks();
|
||||
});
|
||||
|
||||
it("valid query that returns anilist results", async () => {
|
||||
vi.mocked(fetchFromMultipleSources).mockResolvedValue({
|
||||
result: {
|
||||
results: [
|
||||
{
|
||||
id: 151807,
|
||||
title: {
|
||||
userPreferred: "Ore dake Level Up na Ken",
|
||||
english: "Solo Leveling",
|
||||
},
|
||||
coverImage: {
|
||||
extraLarge:
|
||||
"https://s4.anilist.co/file/anilistcdn/media/anime/cover/large/bx151807-yxY3olrjZH4k.png",
|
||||
large:
|
||||
"https://s4.anilist.co/file/anilistcdn/media/anime/cover/medium/bx151807-yxY3olrjZH4k.png",
|
||||
medium:
|
||||
"https://s4.anilist.co/file/anilistcdn/media/anime/cover/small/bx151807-yxY3olrjZH4k.png",
|
||||
},
|
||||
},
|
||||
],
|
||||
hasNextPage: false,
|
||||
},
|
||||
errorOccurred: false,
|
||||
});
|
||||
|
||||
const response = await app.request("/search?query=search query");
|
||||
|
||||
expect(response.json()).resolves.toMatchSnapshot();
|
||||
expect(await response.json()).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("query that returns no results", async () => {
|
||||
vi.mocked(fetchFromMultipleSources).mockResolvedValue({
|
||||
result: null,
|
||||
errorOccurred: false,
|
||||
});
|
||||
|
||||
const response = await app.request("/search?query=a");
|
||||
|
||||
expect(response.json()).resolves.toEqual({
|
||||
expect(await response.json()).toEqual({
|
||||
success: true,
|
||||
results: [],
|
||||
hasNextPage: false,
|
||||
|
||||
Reference in New Issue
Block a user