У меня есть модуль constants.js
, который возвращает несколько константных объектов:
export const SERVER = {
HOST: 'localhost',
PORT: 8000,
};
export const PATHS = {
LOGIN: '/login',
LOGOUT: '/logout',
};
Я использую PactJS , и для того, чтобы я мог выполнять параллельные тесты с Jest, ядолжны использовать разные порты в каждом it()
тестовом примере.Поэтому я хочу изменить значение SERVER.PORT
на beforeEach()
.
Это то, что у меня пока, что не работает:
beforeEach(() => {
port = getRandomPort();
jest.doMock('./constants', () => ({
SERVER: {
PORT: port,
},
})
});
Тестируемый модуль, когдаloading constants.js
загружает его с фактическими значениями вместо проверенных.Так что это не работает.
Я также пытался использовать jest.mock()
вместо jest.doMock()
и возвращать фиктивную функцию, поэтому я могу изменить .mockReturnValue()
, так как constants.js
не экспортирует функцию, но объект, делающий это, не имеет смысла, поэтому он тоже не работает.
Как мне этого добиться?