50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
import { assertEquals } from "@std/assert";
|
|
import { addWatermark } from "./main.ts";
|
|
|
|
Deno.test("addWatermark - should add watermark to image", async () => {
|
|
const { default: sharp } = await import("sharp");
|
|
|
|
// 创建测试图片 (200x200 红色方块)
|
|
const testImagePath = "/tmp/test_image.png";
|
|
await sharp({
|
|
create: {
|
|
width: 200,
|
|
height: 200,
|
|
channels: 3,
|
|
background: { r: 255, g: 0, b: 0 },
|
|
},
|
|
}).png().toFile(testImagePath);
|
|
|
|
const outputPath = "/tmp/test_image_watermarked.png";
|
|
|
|
try {
|
|
// 添加水印(带背景色)
|
|
await addWatermark(testImagePath, {
|
|
text: "Test Watermark",
|
|
fontSize: 16,
|
|
color: "white",
|
|
backgroundColor: "#80000000",
|
|
backgroundPadding: 5,
|
|
marginRight: 10,
|
|
marginBottom: 10,
|
|
outputPath,
|
|
});
|
|
|
|
// 验证输出文件存在
|
|
const stat = await Deno.stat(outputPath);
|
|
assertEquals(stat.isFile, true);
|
|
} finally {
|
|
// 清理
|
|
try {
|
|
await Deno.remove(testImagePath);
|
|
} catch {
|
|
// Ignore
|
|
}
|
|
try {
|
|
await Deno.remove(outputPath);
|
|
} catch {
|
|
// Ignore
|
|
}
|
|
}
|
|
});
|