2026-05-18 07:27:06 +07:00
|
|
|
// @ts-nocheck
|
2026-05-18 07:14:35 +07:00
|
|
|
import { describe, it, expect, mock, beforeEach, afterAll } from "bun:test";
|
|
|
|
|
|
|
|
|
|
const mockServe = mock((options) => {
|
|
|
|
|
return {
|
|
|
|
|
port: options.port,
|
|
|
|
|
routes: options.routes,
|
|
|
|
|
stop: mock()
|
|
|
|
|
};
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const originalServe = Bun.serve;
|
|
|
|
|
Bun.serve = mockServe;
|
|
|
|
|
|
|
|
|
|
const mockStartBot = mock(() => Promise.resolve({
|
|
|
|
|
stop: mock()
|
|
|
|
|
}));
|
|
|
|
|
|
2026-05-18 07:27:06 +07:00
|
|
|
mock.module("../src/bot", () => ({
|
2026-05-18 07:14:35 +07:00
|
|
|
startBot: mockStartBot
|
|
|
|
|
}));
|
|
|
|
|
|
2026-05-18 07:27:06 +07:00
|
|
|
mock.module("../src/routes/upload", () => ({
|
2026-05-18 07:14:35 +07:00
|
|
|
handleUpload: mock()
|
|
|
|
|
}));
|
|
|
|
|
|
2026-05-18 07:27:06 +07:00
|
|
|
mock.module("../src/routes/files", () => ({
|
2026-05-18 07:14:35 +07:00
|
|
|
handleFileRedirect: mock(),
|
|
|
|
|
handleFileInfo: mock()
|
|
|
|
|
}));
|
|
|
|
|
|
2026-05-18 07:27:06 +07:00
|
|
|
mock.module("../src/routes/health", () => ({
|
2026-05-18 07:14:35 +07:00
|
|
|
handleHealth: mock()
|
|
|
|
|
}));
|
|
|
|
|
|
2026-05-18 07:27:06 +07:00
|
|
|
mock.module("../src/utils/rateLimit", () => ({
|
2026-05-18 07:14:35 +07:00
|
|
|
cleanupRateLimitCache: mock()
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
describe("Bootstrap Server", () => {
|
|
|
|
|
beforeEach(() => {
|
|
|
|
|
mockServe.mockClear();
|
|
|
|
|
mockStartBot.mockClear();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
afterAll(() => {
|
|
|
|
|
Bun.serve = originalServe;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should bootstrap the application successfully", async () => {
|
2026-05-18 07:27:06 +07:00
|
|
|
await import("../src/index");
|
2026-05-18 07:14:35 +07:00
|
|
|
|
|
|
|
|
expect(mockServe).toHaveBeenCalled();
|
|
|
|
|
expect(mockStartBot).toHaveBeenCalled();
|
|
|
|
|
|
|
|
|
|
const serveCallArgs = mockServe.mock.calls[0][0];
|
|
|
|
|
expect(serveCallArgs).toHaveProperty("port");
|
|
|
|
|
expect(serveCallArgs).toHaveProperty("routes");
|
|
|
|
|
expect(serveCallArgs.routes).toHaveProperty("/api/upload");
|
|
|
|
|
expect(serveCallArgs.routes).toHaveProperty("/f/:public_id");
|
|
|
|
|
expect(serveCallArgs.routes).toHaveProperty("/file/:public_id/info");
|
|
|
|
|
expect(serveCallArgs.routes).toHaveProperty("/health");
|
|
|
|
|
});
|
|
|
|
|
});
|