Files
TeleUploader/test/bootstrap.test.ts
T

65 lines
1.5 KiB
TypeScript
Raw Normal View History

2026-05-18 07:27:06 +07:00
// @ts-nocheck
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", () => ({
startBot: mockStartBot
}));
2026-05-18 07:27:06 +07:00
mock.module("../src/routes/upload", () => ({
handleUpload: mock()
}));
2026-05-18 07:27:06 +07:00
mock.module("../src/routes/files", () => ({
handleFileRedirect: mock(),
handleFileInfo: mock()
}));
2026-05-18 07:27:06 +07:00
mock.module("../src/routes/health", () => ({
handleHealth: mock()
}));
2026-05-18 07:27:06 +07:00
mock.module("../src/utils/rateLimit", () => ({
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");
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");
});
});