39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
|
|
import { describe, it, expect, beforeEach } from "bun:test";
|
|
import { logger, getRecentLogs } from "./logger";
|
|
|
|
describe("Logger Buffer", () => {
|
|
// Note: Since the buffer is a module-level variable, it persists across tests.
|
|
// In a real scenario we might want a reset function, but for now we'll just check relative additions.
|
|
|
|
it("should add logs to the buffer", () => {
|
|
const initialLength = getRecentLogs().length;
|
|
logger.info("Test Info Log");
|
|
const newLogs = getRecentLogs();
|
|
|
|
expect(newLogs.length).toBe(initialLength + 1);
|
|
expect(newLogs[0]?.message).toBe("Test Info Log");
|
|
expect(newLogs[0]?.type).toBe("info");
|
|
});
|
|
|
|
it("should cap the buffer size at 50", () => {
|
|
// Fill the buffer
|
|
for (let i = 0; i < 60; i++) {
|
|
logger.debug(`Log overflow test ${i}`);
|
|
}
|
|
|
|
const logs = getRecentLogs();
|
|
expect(logs.length).toBeLessThanOrEqual(50);
|
|
expect(logs[0]?.message).toBe("Log overflow test 59");
|
|
});
|
|
|
|
it("should handle different log levels", () => {
|
|
logger.error("Critical Error");
|
|
logger.success("Operation Successful");
|
|
|
|
const logs = getRecentLogs();
|
|
expect(logs[0]?.type).toBe("success");
|
|
expect(logs[1]?.type).toBe("error");
|
|
});
|
|
});
|