Skip to main content

Mock

.toHaveBeenCalledBefore()

Use .toHaveBeenCalledBefore when checking if a Mock was called before another Mock.

test('calls mock1 before mock2', () => {
  const mock1 = jest.fn();
  const mock2 = jest.fn();

  mock1();
  mock2();
  mock1();

  expect(mock1).toHaveBeenCalledBefore(mock2);
});

Open browser consoleTests

.toHaveBeenCalledAfter()

Use .toHaveBeenCalledAfter when checking if a Mock was called after another Mock.

test('calls mock1 after mock2', () => {
  const mock1 = jest.fn();
  const mock2 = jest.fn();

  mock2();
  mock1();
  mock2();

  expect(mock1).toHaveBeenCalledAfter(mock2);
});

Open browser consoleTests

.toHaveBeenCalledOnce()

Use .toHaveBeenCalledOnce to check if a Mock was called exactly one time.

test('passes only if mock was called exactly once', () => {
  const mock = jest.fn();

  expect(mock).not.toHaveBeenCalled();
  mock();
  expect(mock).toHaveBeenCalledOnce();
});

Open browser consoleTests

.toHaveBeenCalledExactlyOnceWith()

Use .toHaveBeenCalledExactlyOnceWith to check if a Mock was called exactly one time and with the expected values.

test('passes only if mock was called exactly once with the expected value', () => {
  const mock = jest.fn();

  expect(mock).not.toHaveBeenCalled();
  mock('hello');
  expect(mock).toHaveBeenCalledExactlyOnceWith('hello');
});

Open browser consoleTests