Files
dc-recorder/tests/moderation/attachmentUploader.test.ts
MythEclipse 017efb0b86 feat: implement moderation message capture system
- Add message store with database operations (insert, update, query)
- Implement attachment uploader with picser integration
- Add Discord event listeners for message create/update/delete
- Support attachment upload with retry logic and error handling
- Add comprehensive unit tests for message store and uploader
2026-05-13 19:34:14 +07:00

47 lines
1.3 KiB
TypeScript

import { describe, it, expect, beforeEach } from "vitest";
beforeEach(() => {
process.env = {
...process.env,
DISCORD_TOKEN: "test-token",
MONITOR_GUILD_ID: "test-guild",
NODE_ENV: "test",
};
});
describe("attachmentUploader", () => {
it("parses picser upload response correctly", async () => {
const { parseUploadResponse } = await import("../../src/moderation/attachmentUploader");
const response = {
success: true,
filename: "uploads/abc123.jpg",
urls: {
raw_commit: "https://raw.githubusercontent.com/user/repo/commit/uploads/abc123.jpg",
},
size: 102400,
type: "image/jpeg",
};
const result = parseUploadResponse(response);
expect(result.success).toBe(true);
expect(result.url).toBe("https://raw.githubusercontent.com/user/repo/commit/uploads/abc123.jpg");
expect(result.filename).toBe("uploads/abc123.jpg");
});
it("handles upload response with missing raw_commit", async () => {
const { parseUploadResponse } = await import("../../src/moderation/attachmentUploader");
const response = {
success: true,
filename: "uploads/abc123.jpg",
urls: {},
size: 102400,
type: "image/jpeg",
};
expect(() => parseUploadResponse(response)).toThrow();
});
});