import { MockLogger } from "./logger"; test("should reset single message", () => { // given const logger = new MockLogger(); // when logger.tag("test").debug("message"); logger.reset(); // then expect(logger.getMessages("debug", "test")).toEqual([]); }); test("should reset multiple messages", () => { // given const logger = new MockLogger(); // when logger.tag("test").debug("message 1"); logger.tag("test").debug("message 2"); logger.reset(); // then expect(logger.getMessages("debug", "test")).toEqual([]); }); test("should reset multiple nested messages", () => { // given const logger = new MockLogger(); // when logger.tag("foo", "bar").debug("message 1"); logger.tag("foo", "bar").debug("message 2"); logger.tag("foo").debug("message 3"); logger.tag("baz").debug("message 4"); logger.tag("baz").debug("message 5"); logger.reset(); // then expect(logger.getMessages("debug", "foo", "bar")).toEqual([]); expect(logger.getMessages("debug", "foo")).toEqual([]); expect(logger.getMessages("debug", "baz")).toEqual([]); }); test("should not get messages without logging", () => { // given const logger = new MockLogger(); // then expect(logger.getMessages("debug")).toEqual([]); expect(logger.getMessages("debug", "foo")).toEqual([]); expect(logger.getMessages("debug", "foo", "bar")).toEqual([]); }); test("should not get messages for no tag", () => { // given const logger = new MockLogger(); // when logger.tag("test").debug("message"); // then expect(logger.getMessages("debug")).toEqual([]); }); test("should not get messages for wrong single tag", () => { // given const logger = new MockLogger(); // when logger.tag("foo").debug("message"); // then expect(logger.getMessages("debug", "bar")).toEqual([]); }); test("should not get messages for wrong tags", () => { // given const logger = new MockLogger(); // when logger.tag("foo", "bar").debug("message"); // then expect(logger.getMessages("debug", "baz")).toEqual([]); expect(logger.getMessages("debug", "foo", "baz")).toEqual([]); }); test("should not get messages for wrong level", () => { // given const logger = new MockLogger(); // when logger.tag("foo", "bar").debug("message"); // then expect(logger.getMessages("info", "foo", "bar")).toEqual([]); }); test("should get messages for no tag", () => { // given const logger = new MockLogger(); // when logger.tag().debug("message"); // then expect(logger.getMessages("debug")).toEqual([["message"]]); }); test("should get messages for single tag", () => { // given const logger = new MockLogger(); // when logger.tag("test").debug("message"); // then expect(logger.getMessages("debug", "test")).toEqual([["message"]]); }); test("should get messages for multiple tags", () => { // given const logger = new MockLogger(); // when logger.tag("foo", "bar").debug("message"); // then expect(logger.getMessages("debug", "foo", "bar")).toEqual([["message"]]); }); test("should get messages for correct tags", () => { // given const logger = new MockLogger(); // when logger.tag("foo", "bar").debug("message 1"); logger.tag("foo", "baz").debug("message 2"); // then expect(logger.getMessages("debug", "foo", "bar")).toEqual([["message 1"]]); }); test("should get multiple messages", () => { // given const logger = new MockLogger(); // when logger.tag("foo", "bar").debug("message 1"); logger.tag("foo", "bar").debug("message 2"); // then expect(logger.getMessages("debug", "foo", "bar")).toEqual([ ["message 1"], ["message 2"], ]); }); test("should get complex message", () => { // given const logger = new MockLogger(); // when logger.tag("foo", "bar").debug("message", 1, false, {}); // then expect(logger.getMessages("debug", "foo", "bar")).toEqual([ ["message", 1, false, {}], ]); });