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.
Это ошибка? Я просмотрел документацию, но не смог найти причину этого несоответствия.