UNPKG

@applicaster/zapplicaster-cli

Version:

CLI Tool for the zapp app and Quick Brick project

95 lines (79 loc) 2.69 kB
const logger = require("../index"); const chalk = require("chalk"); const { inspect } = require("util"); const logSpy = jest.spyOn(console, "log"); const errorSpy = jest.spyOn(console, "error"); const warnSpy = jest.spyOn(console, "warn"); describe("logger modules", () => { afterEach(() => { [logSpy, errorSpy, warnSpy].map((spy) => spy.mockReset()); }); it("has the appropriate methods", () => { const methods = [ "welcome", "log", "error", "warn", "startStep", "endStep", "success", ]; methods.forEach((method) => { expect(logger).toHaveProperty(method); expect(typeof logger[method] === "function").toBe(true); }); }); it("displays a welcome message", () => { logger.welcome("name"); expect(logSpy).toHaveBeenCalledTimes(3); }); it("displays a welcome message with an optional additional message", () => { logger.welcome("name", "message"); expect(logSpy).toHaveBeenCalledTimes(4); }); it("displays a log message", () => { const message = "a log message"; logger.log(message); expect(logSpy).toHaveBeenCalledWith(message); }); it("inspects the object passed to the log", () => { const obj = { foo: "bar" }; logger.log(obj); expect(logSpy).toHaveBeenCalledWith(inspect(obj)); }); it("displays a warn message", () => { const message = "a warn message"; logger.warn(message); expect(warnSpy).toHaveBeenCalledWith("\u26A0 ", chalk.yellow(message)); }); describe("error function", () => { it("returns a function if only a message is passed", () => { const errorLogger = logger.error("message"); expect(typeof errorLogger === "function").toBe(true); }); it("displays an error message", () => { const message = "an error message"; logger.error(message, new Error(message)); expect(errorSpy).toHaveBeenCalledTimes(2); }); }); it("displays a start step message", () => { logger.startStep("message"); expect(logSpy).toHaveBeenCalledWith("\n\u{1F680} ", chalk.cyan("message")); }); describe("endStep function", () => { it("displays a end step message", () => { logger.endStep("message"); expect(logSpy).toHaveBeenCalledWith("\u2714 ", chalk.green("message")); }); it("inspects the object passed to the function", () => { const obj = { foo: "bar" }; logger.endStep(obj); expect(logSpy).toHaveBeenCalledWith("\u2714 ", chalk.green(inspect(obj))); }); }); it("displays a success message", () => { logger.success("message"); expect(logSpy).toHaveBeenCalledWith("\n\u{1F389} ", chalk.green("message")); }); });