simplest-fancy-logger
Version:
A lightweight and easy-to-use logging library for Node.js applications
57 lines (45 loc) • 1.46 kB
text/typescript
import fs from "fs"
import SimpleLogger from "../src/simpleLogger"
describe("SimpleLogger", () => {
let logger: SimpleLogger
const logFile = "test.log"
beforeEach(() => {
logger = new SimpleLogger({
logLevel: "debug",
logFile: logFile,
})
if (fs.existsSync(logFile)) {
fs.unlinkSync(logFile)
}
})
afterEach(() => {
if (fs.existsSync(logFile)) {
fs.unlinkSync(logFile)
}
})
it("should log messages to console", () => {
const consoleSpy = jest.spyOn(console, "log")
logger.info("Information message")
expect(consoleSpy).toHaveBeenCalledWith(
expect.stringContaining("Information message")
)
})
it("should write logs to file if logFile is specified", () => {
logger.warn("Warning message")
expect(fs.existsSync(logFile)).toBeTruthy()
const logContent = fs.readFileSync(logFile, "utf8")
expect(logContent).toContain("Warning message")
})
it("should rotate log files correctly", () => {
logger = new SimpleLogger({
logLevel: "debug",
logFile: logFile,
maxFileSize: 10, // Set small size for testing log rotation
})
logger.debug("First message")
logger.debug("Second message") // This should trigger log rotation
expect(fs.existsSync(logFile)).toBeTruthy()
expect(fs.existsSync(`test.1.log`)).toBeTruthy()
})
// Add more tests as needed...
})