|
1 | 1 | import { describe, test, expect, beforeEach, afterEach, vi } from "vitest"; |
2 | | -import { logger, setLogger } from "./Logger.js"; |
| 2 | +import { logger, resetLogger, setLogger } from "./Logger.js"; |
3 | 3 | import type { ILogger } from "$lib/types.js"; |
4 | 4 |
|
5 | 5 | describe("logger", () => { |
6 | | - test("Should default to globalThis.console", () => { |
7 | | - expect(logger).toBe(globalThis.console); |
| 6 | + test("Should default to offLogger (not console)", () => { |
| 7 | + expect(logger).not.toBe(globalThis.console); |
| 8 | + expect(logger.debug).toBeDefined(); |
| 9 | + expect(logger.log).toBeDefined(); |
| 10 | + expect(logger.warn).toBeDefined(); |
| 11 | + expect(logger.error).toBeDefined(); |
8 | 12 | }); |
9 | 13 | }); |
10 | 14 |
|
@@ -158,4 +162,45 @@ describe("setLogger", () => { |
158 | 162 | expect(mockLogger.error).toHaveBeenCalledWith("error", { error: "object" }); |
159 | 163 | }); |
160 | 164 | }); |
| 165 | + |
| 166 | + describe("resetLogger", () => { |
| 167 | + test("Should reset logger to offLogger (default uninitialized state).", () => { |
| 168 | + // Arrange - Set logger to console |
| 169 | + setLogger(true); |
| 170 | + expect(logger).toBe(globalThis.console); |
| 171 | + |
| 172 | + // Act |
| 173 | + resetLogger(); |
| 174 | + |
| 175 | + // Assert - Logger should be back to offLogger |
| 176 | + expect(logger).not.toBe(globalThis.console); |
| 177 | + expect(logger.debug).toBeDefined(); |
| 178 | + expect(logger.log).toBeDefined(); |
| 179 | + expect(logger.warn).toBeDefined(); |
| 180 | + expect(logger.error).toBeDefined(); |
| 181 | + }); |
| 182 | + |
| 183 | + test("Should reset logger from custom logger to offLogger.", () => { |
| 184 | + // Arrange - Set logger to custom logger |
| 185 | + const customLogger = { |
| 186 | + debug: vi.fn(), |
| 187 | + log: vi.fn(), |
| 188 | + warn: vi.fn(), |
| 189 | + error: vi.fn() |
| 190 | + }; |
| 191 | + setLogger(customLogger); |
| 192 | + expect(logger).toBe(customLogger); |
| 193 | + |
| 194 | + // Act |
| 195 | + resetLogger(); |
| 196 | + |
| 197 | + // Assert - Logger should be back to offLogger |
| 198 | + expect(logger).not.toBe(customLogger); |
| 199 | + expect(logger).not.toBe(globalThis.console); |
| 200 | + expect(logger.debug).toBeDefined(); |
| 201 | + expect(logger.log).toBeDefined(); |
| 202 | + expect(logger.warn).toBeDefined(); |
| 203 | + expect(logger.error).toBeDefined(); |
| 204 | + }); |
| 205 | + }); |
161 | 206 | }); |
0 commit comments