Переменные пользовательской среды Node-config не переопределяют default.json во время теста - PullRequest
0 голосов
/ 11 мая 2019

Node-config custom-environment-variables.json, по-видимому, не переопределяет значения в default.json, когда для NODE_ENV установлено значение «test». Вот чрезвычайно простая конфигурация:

конфиг / default.json:

{
  "jwtPrivateKey": "defaultkey"
}

конфиг / заказ среда-variables.json:

{
 "jwtPrivateKey": "JWTPRIVATEKEY"
}

конфиг / test.json:

{}

app.js:

console.log('NODE_ENV': + process.env.NODE_ENV);
console.log('Env: ' + process.env.JWTPRIVATEKEY);
console.log("Config: " + config.get('jwtPrivateKey'));

Это работает, как и ожидалось: я получаю NODE_ENV = undefined (поэтому по умолчанию для node-config будет указано «development»), и в следующих двух строках будет выведено правильное значение, заданное в переменной среды. Однако, если я попытаюсь запустить простой тест с Jest и напечатать то же самое:

Тесты / some.test.js:

test('Some Test', () => {
    console.log('NODE_ENV:' + process.env.NODE_ENV);
    console.log('Env: ' + process.env.JWTPRIVATEKEY);
    console.log("Config: " + config.get('jwtPrivateKey'));
});

Я получаю NODE_ENV = test, Env = правильное значение, установленное в переменной среды ... но Config = defaultKey.

Другими словами: хотя он показывает, что для переменной среды задано правильное значение, кажется, что node-config не вытягивает ее через custom-environment-variables.json.

Это ошибка? Я просмотрел документацию, но не смог найти причину этого несоответствия.

1 Ответ

0 голосов
/ 29 мая 2019

У вас случайно есть файл local.json в вашей папке конфигурации? Если это так, это специальный тип файла, который переопределяет все, поэтому ваши значения могут точно соответствовать значениям этой конфигурации. NODE_ENV var, по-видимому, не влияет на то, будет ли local.json загружен последним.

Я только что столкнулся с этой проблемой, и временное переименование / удаление local.json решило мою проблему.

...