Files
bunext/src/__tests__/functions/server/grab-page-component.test.tsx
T
2026-10-13 15:52:34 +01:00

53 lines
1.6 KiB
TypeScript

import { afterEach, describe, expect, mock, test } from "bun:test";
import path from "path";
import type { GrabPageComponentRes } from "../../../types";
mock.module("../../../../src/utils/log", () => ({
log: {
info: mock((msg: string) => {}),
error: mock((msg: string) => {}),
},
}));
mock.module("../../../../src/utils/is-development", () => ({
default: () => false
}));
mock.module("../../../../src/functions/server/full-rebuild", () => ({
default: async () => {}
}));
mock.module("../../../../src/functions/server/server-post-build-fn", () => ({
default: async () => {}
}));
import { log } from "../../../../src/utils/log";
import grabPageComponent from "../../../../src/functions/server/web-pages/grab-page-component";
describe("grabPageComponent", () => {
const originalRouter = global.BUNEXT_ROUTER;
afterEach(() => {
global.BUNEXT_ROUTER = originalRouter;
mock.restore();
});
test("does not log an error for expected 404 page lookups", async () => {
global.BUNEXT_ROUTER = new Bun.FileSystemRouter({
style: "nextjs",
dir: path.resolve(__dirname, "../../../../test/e2e-fixture/src/pages"),
});
const res = await grabPageComponent({
req: new Request("http://localhost:3000/unknown-foo-bar123"),
});
console.log("DEBUG-404:", res instanceof Response ? "Response" : JSON.stringify(res));
expect(res).not.toBeInstanceOf(Response);
expect(
(res as GrabPageComponentRes).serverRes?.response_options?.status,
).toBe(404);
expect(log.error).not.toHaveBeenCalled();
});
});