Вы можете использовать jest.resetModules () в методе beforeEach для сброса уже необходимых модулей
beforeEach(() => {
jest.resetModules()
process.env = { ...OLD_ENV };
delete process.env.NODE_ENV;
});
Здесь вы можете найти полное руководство по тому же.
https://jestjs.io/docs/en/jest-object.html#jestresetmodules
Ссылка, которую вы разместили, является идеальным способом сделать это, создав реализацию, как показано ниже
describe('environmental variables', () => {
const OLD_ENV = process.env;
beforeEach(() => {
jest.resetModules() // this is important
process.env = { ...OLD_ENV };
delete process.env.NODE_ENV;
});
afterEach(() => {
process.env = OLD_ENV;
});
test('will receive process.env variables', () => {
// set the variables
process.env.NODE_ENV = 'dev';
process.env.PROXY_PREFIX = '/new-prefix/';
process.env.API_URL = 'https://new-api.com/';
process.env.APP_PORT = '7080';
process.env.USE_PROXY = 'false';
const testedModule = require('../../config/env').default
// ... actual testing
});
});
Надеюсь, это поможет.