Шутка: дразнить требовать. Разрешать звонки - PullRequest
1 голос
/ 07 февраля 2020

Я видел этот вопрос , но никто не ответил на него так прямо, как хотелось бы, поэтому здесь мы снова go:

Как мне высмеивать звонки на require.resolve?

Итак, если у меня есть такой модуль:

get-module.js

// just a simple example, don't get too caught up
export default getModuleLocation() {
  return require.resolve('./my-module');
}

Как я могу заставить мой require.resolve вызов возвращать что-то еще? Вот что я попробовал:

get-module.test.js

import getModule from './get-module';

let originalRequireResolve;
beforeAll(() => {
  originalRequireResolve = require.resolve;
  require.resolve = jest.fn();
});

afterAll(() => {
  require.resolve = originalRequireResolve;
});

it('gets the module', () => {
  // ? this does NOT work
  require.resolve.mockReturnValueOnce('mock-module');
  expect(getModule()).toBe('mock-module');
});

Вышеуказанное не работает, но пример хорошо показывает, что я пытаюсь делать. Кажется, require - это какая-то зарезервированная вещь, которую я не могу высмеять.

Есть идеи? Никаких обходных путей, пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...