Проверьте функцию Azure в Nodejs с помощью переменной Jest - process.env, показывающей неопределенное - PullRequest
0 голосов
/ 22 апреля 2019

Проверка функции Azure (с использованием jest) не выполнена из-за "переменной process.env undefined". существующий код прекрасно работает в обычной отладке, но в команде "yarn run jest" он показывает переменную process.env undefined. Все конфигурации хранятся в local.settings.json.

Я попробовал " test process.env with Jest " по этой ссылке. но мой рабочий сервер не может принимать несколько объявлений

1 Ответ

1 голос
/ 24 апреля 2019

Вы можете использовать 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
  });
});

Надеюсь, это поможет.

...