Skip to content

Commit 1649d6b

Browse files
authored
Merge pull request #172 from johnb8/extends-environment-fix
Fix global environment override not being used by $extends
2 parents 882f6f5 + 486cea3 commit 1649d6b

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

app-config-extensions/src/extends-directive.test.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,23 @@ describe('$extends directive', () => {
4545
);
4646
});
4747

48+
it('merges two files with env in extends file and global env override', async () => {
49+
await withTempFiles(
50+
{
51+
'referenced-file.json': `{ "foo": { "$env": { "prod": true, "qa": false } } }`,
52+
'test-file.json': `{ "$extends": "./referenced-file.json", "bar": true }`,
53+
},
54+
async (inDir) => {
55+
const source = new FileSource(inDir('test-file.json'));
56+
const parsed = await source.read([extendsDirective(), envDirective()], {
57+
environmentOptions: { override: 'prod' },
58+
});
59+
60+
expect(parsed.toJSON()).toEqual({ foo: true, bar: true });
61+
},
62+
);
63+
});
64+
4865
it('merges many files (flat)', async () => {
4966
await withTempFiles(
5067
{

app-config-extensions/src/extends-directive.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,12 @@ function fileReferenceDirective(keyName: string, meta: ParsedValueMetadata): Par
4848

4949
const environmentOptions = {
5050
...environmentOptionsFromContext(context),
51-
override: env,
5251
};
5352

53+
if (env) {
54+
environmentOptions.override = env;
55+
}
56+
5457
const parsed = await resolvedSource
5558
.read(extensions, {
5659
...context,

0 commit comments

Comments
 (0)