UNPKG

simplest-fancy-logger

Version:

A lightweight and easy-to-use logging library for Node.js applications

57 lines (45 loc) 1.46 kB
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... })