import { afterEach, describe, expect, it, vi } from "vitest"; import { GET } from "@/app/api/discord-app/[id]/route"; afterEach(() => { vi.unstubAllGlobals(); vi.restoreAllMocks(); }); function contextWith(id: string) { return { params: Promise.resolve({ id }) }; } describe("GET /api/discord-app/[id]", () => { it("returns 400 for non-numeric ids", async () => { const response = await GET( new Request("https://fristy.net/api/discord-app/abc"), contextWith("abc"), ); expect(response.status).toBe(400); }); it("returns 404 when the app is unknown", async () => { vi.stubGlobal( "fetch", vi.fn(async () => ({ ok: false, status: 404 })), ); const response = await GET( new Request("https://fristy.net/api/discord-app/123"), contextWith("123"), ); expect(response.status).toBe(404); }); it("returns 502 when upstream networking fails", async () => { vi.stubGlobal( "fetch", vi.fn(async () => { throw new Error("down"); }), ); const response = await GET( new Request("https://fristy.net/api/discord-app/123"), contextWith("123"), ); expect(response.status).toBe(502); }); });