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
This commit is contained in:
46
tests/moderation/attachmentUploader.test.ts
Normal file
46
tests/moderation/attachmentUploader.test.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
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();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user