UNPKG

@nodeboot/starter-persistence

Version:

Nodeboot starter package for persistence. Supports data access layer auto-configuration providing features like database initialization, consistency check, entity mapping, repository pattern, transactions, paging, migrations, persistence listeners, persis

83 lines 4.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const PersistenceLogger_1 = require("./PersistenceLogger"); describe("PersistenceLogger", () => { let logger; let configs; let persistenceLogger; beforeEach(() => { logger = { debug: jest.fn(), info: jest.fn(), warn: jest.fn(), error: jest.fn(), }; configs = {}; persistenceLogger = new PersistenceLogger_1.PersistenceLogger(logger, configs); }); it("delegates debug level logs to logger.debug", () => { persistenceLogger["writeLog"]("log", { message: "debug message" }); expect(logger.debug).toHaveBeenCalledWith("debug message"); }); it("delegates info level logs to logger.info with prefix if present", () => { persistenceLogger["writeLog"]("info", { message: "info message", prefix: "[INFO]" }); expect(logger.info).toHaveBeenCalledWith("[INFO]:", "info message"); }); it("delegates info level logs to logger.info without prefix", () => { persistenceLogger["writeLog"]("info", { message: "info message" }); expect(logger.info).toHaveBeenCalledWith("info message"); }); it("delegates warn level logs to logger.warn with prefix if present", () => { persistenceLogger["writeLog"]("warn", { message: "warn message", prefix: "[WARN]" }); expect(logger.warn).toHaveBeenCalledWith("[WARN]:", "warn message"); }); it("delegates warn level logs to logger.warn without prefix", () => { persistenceLogger["writeLog"]("warn", { message: "warn message" }); expect(logger.warn).toHaveBeenCalledWith("warn message"); }); it("delegates error level logs to logger.error with prefix if present", () => { persistenceLogger["writeLog"]("error", { message: "error message", prefix: "[ERROR]" }); expect(logger.error).toHaveBeenCalledWith("[ERROR]:", "error message"); }); it("delegates error level logs to logger.error without prefix", () => { persistenceLogger["writeLog"]("error", { message: "error message" }); expect(logger.error).toHaveBeenCalledWith("error message"); }); it("handles array of log messages and delegates each to correct logger method", () => { const messages = [ { message: "debug message", type: "log" }, { message: "info message", type: "info" }, { message: "warn message", type: "warn" }, { message: "error message", type: "error" }, ]; persistenceLogger["writeLog"]("log", messages); expect(logger.debug).toHaveBeenCalledWith("debug message"); expect(logger.info).toHaveBeenCalledWith("info message"); expect(logger.warn).toHaveBeenCalledWith("warn message"); expect(logger.error).toHaveBeenCalledWith("error message"); }); it("uses message.type over level if present", () => { persistenceLogger["writeLog"]("warn", { message: "should be info", type: "info" }); expect(logger.info).toHaveBeenCalledWith("should be info"); expect(logger.warn).not.toHaveBeenCalled(); }); it("delegates schema-build and migration types to logger.debug", () => { persistenceLogger["writeLog"]("log", { message: "schema build", type: "schema-build" }); persistenceLogger["writeLog"]("log", { message: "migration", type: "migration" }); expect(logger.debug).toHaveBeenCalledWith("schema build"); expect(logger.debug).toHaveBeenCalledWith("migration"); }); it("delegates query type to logger.info", () => { persistenceLogger["writeLog"]("info", { message: "query message", type: "query" }); expect(logger.info).toHaveBeenCalledWith("query message"); }); it("delegates query-slow type to logger.warn", () => { persistenceLogger["writeLog"]("warn", { message: "slow query", type: "query-slow" }); expect(logger.warn).toHaveBeenCalledWith("slow query"); }); it("delegates query-error type to logger.error", () => { persistenceLogger["writeLog"]("error", { message: "query error", type: "query-error" }); expect(logger.error).toHaveBeenCalledWith("query error"); }); }); //# sourceMappingURL=PersistenceLogger.test.js.map