Skip to content

Instantly share code, notes, and snippets.

@apieceofbart
Created February 21, 2018 13:15
Show Gist options
  • Save apieceofbart/d28690d52c46848c39d904ce8968bb27 to your computer and use it in GitHub Desktop.
Save apieceofbart/d28690d52c46848c39d904ce8968bb27 to your computer and use it in GitHub Desktop.
mock lodash debounce in jest
// somewhere on top
import _ from 'lodash';
jest.unmock('lodash');
// then
_.debounce = jest.fn((fn) => fn);
@vv13
Copy link

vv13 commented Nov 26, 2020

jest.mock('lodash', () => {
  const module = jest.requireActual('lodash');
  module.debounce = jest.fn(fn => fn);
  return module;
});

@jabreezy
Copy link

You have to call the function and ignore the timer jest.mock('lodash/fp/debounce', () =>jest.fn((nr, fn) => fn())). This worked for me.

Thank you so much, this worked for me.

@jatin-maropost
Copy link

jest.mock('lodash.debounce', () => jest.fn(fn => fn))

This works , Thanks

@rishik30
Copy link

This worked for me wonderfully

jest.mock('lodash', () => ({
...require.requireActual('lodash'), debounce: fn => {
fn.cancel = jest.fn(); return fn;
},}));`

Thanks.

@Knogobert
Copy link

Updated version of @mos-adebayo's above that worked for me (using lodash-es)

jest.mock('lodash-es', () => ({
  ...jest.requireActual('lodash-es'),
  debounce: (fn) => {
    fn.cancel = jest.fn();
    return fn;
  },
}));

@pvev
Copy link

pvev commented Jun 4, 2022

You have to call the function and ignore the timer jest.mock('lodash/fp/debounce', () =>jest.fn((nr, fn) => fn())). This worked for me.

👍

@sumrender
Copy link

sumrender commented Apr 15, 2024

This worked for me perfectly:

import * as lodash from 'lodash-es';
// other imports...

jest.mock('lodash-es/debounce', () => ({
  default: jest.fn(fn => fn),
  __esModule: true
}));

// describe block...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment