Я пытаюсь изменить значение моей конфигурации в памяти для тестирования, я пробовал добавить process.env.ALLOW_CONFIG_MUTATIONS=true в нескольких местах в приложении, а также через командную строку и мой файл .env.
Метод config.util.getEnv('ALLOW_CONFIG_MUTATION') всегда возвращает значение undefined.
Я также пробовал использовать importFresh и MockRequest в соответствии с примерами, которые я видел в Интернете, ни один из которых не позволяет мне изменить конфигурацию в памяти, а затем сбросить значение позже.
Кто-нибудь знает об этом?
Обновлять: вот пример того, чего я пытаюсь достичь
const config = require (config);
const app = new App(config)
it(`does a thing with base config`, () => { ... }
it('does a thing with modified config, () => {
// here i would need to modify my config value and
// have it change the original config that's currently in
// application memory
config = newConfig
expect(config.get('newValues')).to.equal(true)
}
Спасибо!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если это тот же модуль конфигурации, который я использовал (я думаю, что это так), добавьте custom-environment-variables.js ИЛИ test.js с тестовой конфигурацией.
test.js потребуется ENV=test для работы, а для пользовательских переменных среды потребуется что-то вроде (для Mac и NPM) $ npm run funcTest -> yarn serverRunning && NODE_ENV=test wdio wdio.conf.js.
JSON будет выглядеть примерно так
{
test: 'Value'
}
ОК. Я не могу вспомнить время, когда конфигурация изменится в середине процесса, или если это вообще возможно. Я предполагаю, что вы нашли способ и поэтому хотите его проверить. если так ... (пауза) ... может потребоваться новый тест (npm run test-config), чтобы получить желаемый эффект. Но, как я уже сказал, я не могу придумать способ попасть в это состояние и, к сожалению, не могу помочь :( в настоящее время. Но, тем не менее, я подумаю об этом.
Спасибо за ответ @MrPickles - я на самом деле уже использую тестовую конфигурацию, но мне нужно изменить ее значение в середине теста. Я дополню свой вопрос примером!