diff --git a/packages/replay/src/util/debounce.ts b/packages/replay/src/util/debounce.ts index a6774a62ca7e..88057c14a4c5 100644 --- a/packages/replay/src/util/debounce.ts +++ b/packages/replay/src/util/debounce.ts @@ -57,7 +57,7 @@ export function debounce(func: CallbackFunction, wait: number, options?: Debounc } timerId = setTimeout(invokeFunc, wait); - if (maxWait && maxTimerId === undefined && maxWait !== wait) { + if (maxWait && maxTimerId === undefined) { maxTimerId = setTimeout(invokeFunc, maxWait); } diff --git a/packages/replay/test/unit/util/debounce.test.ts b/packages/replay/test/unit/util/debounce.test.ts index b75adc6bf3bd..d52f9d456b49 100644 --- a/packages/replay/test/unit/util/debounce.test.ts +++ b/packages/replay/test/unit/util/debounce.test.ts @@ -246,14 +246,27 @@ describe('Unit | util | debounce', () => { const debouncedCallback = debounce(callback, 100, { maxWait: 100 }); debouncedCallback(); - jest.advanceTimersByTime(100); + jest.advanceTimersByTime(25); + debouncedCallback(); + jest.advanceTimersByTime(25); + debouncedCallback(); + jest.advanceTimersByTime(25); + debouncedCallback(); + jest.advanceTimersByTime(25); expect(callback).toHaveBeenCalledTimes(1); const retval = debouncedCallback(); expect(retval).toBe('foo'); - jest.advanceTimersByTime(100); + jest.advanceTimersByTime(25); + debouncedCallback(); + jest.advanceTimersByTime(25); + debouncedCallback(); + jest.advanceTimersByTime(25); + debouncedCallback(); + jest.advanceTimersByTime(25); + expect(callback).toHaveBeenCalledTimes(2); }); });