From b41b2c0d61e048eda340ffcd37e1ff3d4208a084 Mon Sep 17 00:00:00 2001 From: vinamra1102 Date: Fri, 22 May 2026 18:23:16 +0530 Subject: [PATCH] fix: always call timeEnd after timeLog in createDebugger when inspect is true --- src/debugger.ts | 3 +-- test/debuger.test.ts | 12 ++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/debugger.ts b/src/debugger.ts index fbedce9f..b7c5c6fe 100644 --- a/src/debugger.ts +++ b/src/debugger.ts @@ -68,9 +68,8 @@ export function createDebugger( } if (options.inspect) { console.timeLog(logPrefix(event), event.args); - } else { - console.timeEnd(logPrefix(event)); } + console.timeEnd(logPrefix(event)); if (options.group) { console.groupEnd(); } diff --git a/test/debuger.test.ts b/test/debuger.test.ts index ea5ca001..7fda452d 100644 --- a/test/debuger.test.ts +++ b/test/debuger.test.ts @@ -51,6 +51,18 @@ describe("debugger", () => { await hooks.callHook("other:hook"); expect(console.time).toBeCalled(); }); + it("should end timer when inspect is true", async () => { + createDebugger(hooks, { inspect: true }); + await hooks.callHook("hook"); + expect(console.timeEnd).toBeCalledWith(expect.stringContaining("hook")); + }); + it("should not leak timers when calling same hook twice with inspect", async () => { + createDebugger(hooks, { inspect: true }); + await hooks.callHook("hook"); + await hooks.callHook("hook"); + expect(console.time).toBeCalledTimes(2); + expect(console.timeEnd).toBeCalledTimes(2); + }); it("should allowing closing debugger", async () => { const debug = createDebugger(hooks); await hooks.callHook("hook");