fix: correct corrupted-image test expectations and SVGZ watermark filename

Tests expected 422 for corrupted image data, but the API correctly
returns 400 since corruption is caught during validation (unrecognized
format), not during processing. Also fix watermark-image route passing
a hardcoded "watermark" string instead of the actual uploaded filename
to validateImageBuffer, which broke SVGZ detection.
This commit is contained in:
SnapOtter
2026-05-14 10:47:46 +08:00
parent bc0cac42e3
commit 98531db7ed
4 changed files with 12 additions and 11 deletions
+3 -1
View File
@@ -23,6 +23,7 @@ export function registerWatermarkImage(app: FastifyInstance) {
let mainBuffer: Buffer | null = null;
let watermarkBuffer: Buffer | null = null;
let filename = "image";
let wmFilename = "watermark";
let settingsRaw: string | null = null;
try {
@@ -36,6 +37,7 @@ export function registerWatermarkImage(app: FastifyInstance) {
const buf = Buffer.concat(chunks);
if (part.fieldname === "watermark") {
watermarkBuffer = buf;
wmFilename = sanitizeFilename(part.filename ?? "watermark");
} else {
mainBuffer = buf;
filename = sanitizeFilename(part.filename ?? "image");
@@ -117,7 +119,7 @@ export function registerWatermarkImage(app: FastifyInstance) {
}
mainBuffer = await autoOrient(mainBuffer);
const valWm = await validateImageBuffer(watermarkBuffer, "watermark");
const valWm = await validateImageBuffer(watermarkBuffer, wmFilename);
if (!valWm.valid) {
return reply.status(400).send({ error: `Invalid watermark image: ${valWm.reason}` });
}