You can use jest.resetModules() in beforeEach method to reset the already required modules
beforeEach(() => {
  jest.resetModules()
  process.env = { ...OLD_ENV };
  delete process.env.NODE_ENV;
});
Here you can find a complete guide on the same.
https://jestjs.io/docs/en/jest-object.html#jestresetmodules
Link you posted is an ideal way of doing it by creating implementation like below
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
  });
});
Hope it helps.