Files
TeleUploader/test/env.test.ts
T

47 lines
1.6 KiB
TypeScript
Raw Normal View History

2026-05-18 07:27:06 +07:00
// @ts-nocheck
2026-05-18 06:58:55 +07:00
import { describe, it, expect, beforeAll } from "bun:test";
2026-05-18 07:27:06 +07:00
import { config } from "../src/env";
2026-05-18 06:58:55 +07:00
describe("Environment Variables Validation", () => {
it("config should have all required fields", () => {
expect(config).toHaveProperty("botToken");
expect(config).toHaveProperty("storageChatId");
expect(config).toHaveProperty("baseUrl");
expect(config).toHaveProperty("databaseUrl");
expect(config).toHaveProperty("port");
expect(config).toHaveProperty("nodeEnv");
expect(config).toHaveProperty("logLevel");
expect(config).toHaveProperty("rateLimitWindowMs");
expect(config).toHaveProperty("rateLimitMaxRequests");
});
it("config.botToken should return BOT_TOKEN from process.env", () => {
expect(config.botToken).toBe(process.env.BOT_TOKEN);
});
it("config.storageChatId should be parsed as integer from STORAGE_CHANNEL_ID", () => {
expect(typeof config.storageChatId).toBe("number");
expect(config.storageChatId).toBe(parseInt(process.env.STORAGE_CHANNEL_ID, 10));
});
it("config.port should default to 3000 when not specified", () => {
expect(typeof config.port).toBe("number");
});
it("nodeEnv should be 'test' or 'development'", () => {
expect(["test", "development"]).toContain(config.nodeEnv);
});
it("logLevel should default to 'info'", () => {
expect(config.logLevel).toBe("info");
});
it("rateLimitWindowMs should default to 60000 when not specified", () => {
expect(config.rateLimitWindowMs).toBe(60000);
});
it("rateLimitMaxRequests should default to 30 when not specified", () => {
expect(config.rateLimitMaxRequests).toBe(30);
});
});