私は、テスト時にいくつかの値をオーバーライドしたいと思います。具体的には、httpサービスの再試行回数を1(即時の失敗、再試行なし)に設定します。私たちのプロジェクトはnode-config
を使用しています。 docsによると、私はNODE_CONFIG
のenv変数をオーバーライドすることができます。実行時にnode-configで設定値を上書きするにはどうしたらいいですか?
node myapp.js --NODE_CONFIG='{"Customer":{"dbConfig":{"host":"customerdb.prod"}}}'
まあ、私は私のテストではなく、すべてのテストのためにこれを行うことを好むだろう。 codeは、ALLOW_CONFIG_MUTATIONS
を設定することでconfigの変異を許可できると言います。
process.env.ALLOW_CONFIG_MUTATIONS = "true";
const importFresh = require('import-fresh');
importFresh("config");
process.env.NODE_CONFIG = JSON.stringify({httpServices:{integration:{enrich: {retryInterval: 1, retries: 1}}}});
expect(process.env.NODE_CONFIG, 'NODE_CONFIG not set').to.exist();
expect(process.env.NODE_CONFIG, 'NODE_CONFIG not set').to.match(/retryInterval/);
expect(process.env.ALLOW_CONFIG_MUTATIONS, 'ALLOW_CONFIG_MUTATIONS not set').to.equal("true");
const testConfig = require("config");
console.dir(testConfig.get("httpServices.integration.enrich"));
expect(testConfig.get("httpServices.integration.enrich.retryInterval"), 'config value not set to 1').to.equal(1);
結果:
{ url: 'https://internal-**********',
retryInterval: 5000,
retries: 5 }
`Error: config value not set to 1: Expected 5000 to equal specified value: 1`
が、私はこのオーバーライドは、仕事を得るにはどうすればよいですか?
(期待Hapi.jsコードライブラリからである)
それはうまくいった。私は今、それを見た後、なぜかを見る。あなたの答えはもう少しの説明を使用することができます。 – jcollum
答えがより詳細に更新されました。 –