Categories
JavaScript Answers

How to mock an exported constant in Jest and JavaScript?

Spread the love

Sometimes, we want to mock an exported constant in Jest and JavaScript.

In this article, we’ll look at how to mock an exported constant in Jest and JavaScript.

How to mock an exported constant in Jest and JavaScript?

To mock an exported constant in Jest and JavaScript, we can mock the imported modules with jest.mock.

For instance, we write

const mockTrue = { ENABLED: true };
const mockFalse = { ENABLED: false };

describe("allowThrough", () => {
  beforeEach(() => {
    jest.resetModules();
  });

  test("success", () => {
    jest.mock("./constants", () => mockTrue);
    const { ENABLED } = require("./constants");
    const { allowThrough } = require("./allowThrough");

    expect(ENABLED).toBe(true);
    expect(allowThrough({ value: 1 })).toBe(true);
  });

  test("fail, ENABLED === false", () => {
    jest.mock("./constants", () => mockFalse);
    const { ENABLED } = require("./constants");
    const { allowThrough } = require("./allowThrough");

    expect(ENABLED).toBe(false);
    expect(allowThrough({ value: 1 })).toBe(false);
  });
});

to call jest.mock in each test with the module path and a function that returns the content of the module.

Then we call expect to check for the result we’re looking for in each test.

In the beforeEach callback, we call jest.resetModules to reset the modules to their original values.

Conclusion

To mock an exported constant in Jest and JavaScript, we can mock the imported modules with jest.mock.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *