fix(housekeeping): address task 14 review round 2

This commit is contained in:
simoleo89
2026-08-30 11:30:17 +02:00
parent d09eaa33d6
commit c524b305d7
17 changed files with 614 additions and 130 deletions
+34
View File
@@ -0,0 +1,34 @@
import { existsSync } from "node:fs";
import { readFile } from "node:fs/promises";
import { beforeEach, describe, expect, it, vi } from "vitest";
import { GET } from "./route";
vi.mock("node:fs", () => ({ existsSync: vi.fn() }));
vi.mock("node:fs/promises", () => ({ readFile: vi.fn() }));
vi.mock("@/lib/media-storage", () => ({
MEDIA_ROOT: "C:\\media",
resolveMediaPath: vi.fn(
(name: string) => `C:\\media\\${name.replaceAll("/", "\\")}`,
),
}));
describe("GET /api/media/[...path]", () => {
beforeEach(() => {
vi.clearAllMocks();
vi.mocked(existsSync).mockReturnValue(true);
vi.mocked(readFile).mockResolvedValue(Buffer.from([0, 0, 1, 0]));
});
it("serves a stored genuine ICO with the canonical MIME and nosniff", async () => {
const response = await GET(
new Request("http://localhost/api/media/favicon/site.ico"),
{
params: Promise.resolve({ path: ["favicon", "site.ico"] }),
},
);
expect(response.status).toBe(200);
expect(response.headers.get("content-type")).toBe("image/x-icon");
expect(response.headers.get("x-content-type-options")).toBe("nosniff");
expect(readFile).toHaveBeenCalledOnce();
});
});