Skip to content

Commit 585ccdb

Browse files
committed
refactor: extract env var prefix constant
1 parent 07bf22e commit 585ccdb

File tree

4 files changed

+48
-42
lines changed

4 files changed

+48
-42
lines changed

packages/cdkConstructs/src/config/index.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import {CloudFormationClient, DescribeStacksCommand} from "@aws-sdk/client-cloudformation"
22
import {S3Client, HeadObjectCommand} from "@aws-sdk/client-s3"
33
import {StandardStackProps} from "../apps/createApp"
4+
import {ENV_DEFAULT_PREFIX} from "../constants"
45

56
export function getConfigFromEnvVar(
67
varName: string,
7-
prefix: string = "CDK_CONFIG_",
8+
prefix: string = ENV_DEFAULT_PREFIX,
89
defaultValue: string | undefined = undefined
910
): string {
1011
const value = process.env[prefix + varName]
@@ -19,7 +20,7 @@ export function getConfigFromEnvVar(
1920

2021
export function getBooleanConfigFromEnvVar(
2122
varName: string,
22-
prefix: string = "CDK_CONFIG_",
23+
prefix: string = ENV_DEFAULT_PREFIX,
2324
defaultValue: string | undefined = undefined
2425
): boolean {
2526
const value = getConfigFromEnvVar(varName, prefix, defaultValue)
@@ -28,7 +29,7 @@ export function getBooleanConfigFromEnvVar(
2829

2930
export function getNumberConfigFromEnvVar(
3031
varName: string,
31-
prefix: string = "CDK_CONFIG_",
32+
prefix: string = ENV_DEFAULT_PREFIX,
3233
defaultValue: string | undefined = undefined
3334
): number {
3435
const value = getConfigFromEnvVar(varName, prefix, defaultValue)

packages/cdkConstructs/src/constants.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import {Fn} from "aws-cdk-lib"
22

3+
/** Default prefix used for CDK config environment variables. */
4+
export const ENV_DEFAULT_PREFIX = "CDK_CONFIG_"
5+
36
/** Imported cross-stack account resource values used by constructs in this package. */
47
export const ACCOUNT_RESOURCES = {
58
CloudwatchEncryptionKMSPolicyArn: Fn.importValue("account-resources:CloudwatchEncryptionKMSPolicyArn"),

packages/cdkConstructs/tests/apps/createApp.test.ts

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
} from "vitest"
2525
import {createApp, type CreateAppParams} from "../../src/apps/createApp"
2626
import {AwsSolutionsChecks} from "cdk-nag"
27+
import {ENV_DEFAULT_PREFIX} from "../../src/constants"
2728

2829
describe("createApp", () => {
2930
const originalEnv = process.env
@@ -51,10 +52,10 @@ describe("createApp", () => {
5152

5253
describe("when all environment variables are set", () => {
5354
beforeEach(() => {
54-
process.env.CDK_CONFIG_versionNumber = "1.2.3"
55-
process.env.CDK_CONFIG_commitId = "abc123def456"
56-
process.env.CDK_CONFIG_isPullRequest = "false"
57-
process.env.CDK_CONFIG_environment = "test-environment"
55+
process.env[`${ENV_DEFAULT_PREFIX}versionNumber`] = "1.2.3"
56+
process.env[`${ENV_DEFAULT_PREFIX}commitId`] = "abc123def456"
57+
process.env[`${ENV_DEFAULT_PREFIX}isPullRequest`] = "false"
58+
process.env[`${ENV_DEFAULT_PREFIX}environment`] = "test-environment"
5859
})
5960

6061
test("creates an App with correct configuration", () => {
@@ -124,10 +125,10 @@ describe("createApp", () => {
124125

125126
describe("when isPullRequest is true", () => {
126127
beforeEach(() => {
127-
process.env.CDK_CONFIG_versionNumber = "0.0.1-pr"
128-
process.env.CDK_CONFIG_commitId = "pr123"
129-
process.env.CDK_CONFIG_isPullRequest = "true"
130-
process.env.CDK_CONFIG_environment = "test-environment"
128+
process.env[`${ENV_DEFAULT_PREFIX}versionNumber`] = "0.0.1-pr"
129+
process.env[`${ENV_DEFAULT_PREFIX}commitId`] = "pr123"
130+
process.env[`${ENV_DEFAULT_PREFIX}isPullRequest`] = "true"
131+
process.env[`${ENV_DEFAULT_PREFIX}environment`] = "test-environment"
131132
})
132133

133134
test("correctly modifies props", () => {
@@ -159,41 +160,41 @@ describe("createApp", () => {
159160
describe("when environment variables are missing", () => {
160161

161162
test("throws error when versionNumber is not set", () => {
162-
process.env.CDK_CONFIG_commitId = "abc123"
163-
process.env.CDK_CONFIG_isPullRequest = "false"
164-
process.env.CDK_CONFIG_environment = "test-environment"
163+
process.env[`${ENV_DEFAULT_PREFIX}commitId`] = "abc123"
164+
process.env[`${ENV_DEFAULT_PREFIX}isPullRequest`] = "false"
165+
process.env[`${ENV_DEFAULT_PREFIX}environment`] = "test-environment"
165166

166167
expect(() => {
167168
createApp(buildParams())
168-
}).toThrow("Environment variable CDK_CONFIG_versionNumber is not set")
169+
}).toThrow(`Environment variable ${ENV_DEFAULT_PREFIX}versionNumber is not set`)
169170
})
170171

171172
test("throws error when commitId is not set", () => {
172-
process.env.CDK_CONFIG_versionNumber = "1.0.0"
173-
process.env.CDK_CONFIG_isPullRequest = "false"
174-
process.env.CDK_CONFIG_environment = "test-environment"
173+
process.env[`${ENV_DEFAULT_PREFIX}versionNumber`] = "1.0.0"
174+
process.env[`${ENV_DEFAULT_PREFIX}isPullRequest`] = "false"
175+
process.env[`${ENV_DEFAULT_PREFIX}environment`] = "test-environment"
175176

176177
expect(() => {
177178
createApp(buildParams())
178-
}).toThrow("Environment variable CDK_CONFIG_commitId is not set")
179+
}).toThrow(`Environment variable ${ENV_DEFAULT_PREFIX}commitId is not set`)
179180
})
180181

181182
test("throws error when isPullRequest is not set", () => {
182-
process.env.CDK_CONFIG_versionNumber = "1.0.0"
183-
process.env.CDK_CONFIG_commitId = "abc123"
184-
process.env.CDK_CONFIG_environment = "test-environment"
183+
process.env[`${ENV_DEFAULT_PREFIX}versionNumber`] = "1.0.0"
184+
process.env[`${ENV_DEFAULT_PREFIX}commitId`] = "abc123"
185+
process.env[`${ENV_DEFAULT_PREFIX}environment`] = "test-environment"
185186
expect(() => {
186187
createApp(buildParams())
187-
}).toThrow("Environment variable CDK_CONFIG_isPullRequest is not set")
188+
}).toThrow(`Environment variable ${ENV_DEFAULT_PREFIX}isPullRequest is not set`)
188189
})
189190

190191
test("throws error when environment is not set", () => {
191-
process.env.CDK_CONFIG_versionNumber = "1.0.0"
192-
process.env.CDK_CONFIG_commitId = "abc123"
193-
process.env.CDK_CONFIG_isPullRequest = "false"
192+
process.env[`${ENV_DEFAULT_PREFIX}versionNumber`] = "1.0.0"
193+
process.env[`${ENV_DEFAULT_PREFIX}commitId`] = "abc123"
194+
process.env[`${ENV_DEFAULT_PREFIX}isPullRequest`] = "false"
194195
expect(() => {
195196
createApp(buildParams())
196-
}).toThrow("Environment variable CDK_CONFIG_environment is not set")
197+
}).toThrow(`Environment variable ${ENV_DEFAULT_PREFIX}environment is not set`)
197198
})
198199

199200
})

packages/cdkConstructs/tests/config/index.test.ts

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
getNumberConfigFromEnvVar,
1313
getTrustStoreVersion
1414
} from "../../src/config/index"
15+
import {ENV_DEFAULT_PREFIX} from "../../src/constants"
1516

1617
const mockCloudFormationSend = vi.fn()
1718
const mockS3Send = vi.fn()
@@ -88,22 +89,22 @@ describe("config helpers", () => {
8889
})
8990

9091
test("getConfigFromEnvVar returns the configured value", () => {
91-
process.env.CDK_CONFIG_STACK_NAME = "primary"
92+
process.env[`${ENV_DEFAULT_PREFIX}STACK_NAME`] = "primary"
9293

9394
expect(getConfigFromEnvVar("STACK_NAME")).toBe("primary")
9495
})
9596

9697
test("getConfigFromEnvVar returns the default value when env var is not set", () => {
97-
delete process.env.CDK_CONFIG_MISSING
98+
delete process.env[`${ENV_DEFAULT_PREFIX}MISSING`]
9899

99-
expect(getConfigFromEnvVar("MISSING", "CDK_CONFIG_", "fallback")).toBe("fallback")
100+
expect(getConfigFromEnvVar("MISSING", ENV_DEFAULT_PREFIX, "fallback")).toBe("fallback")
100101
})
101102

102103
test("getConfigFromEnvVar throws when value is missing", () => {
103-
delete process.env.CDK_CONFIG_MISSING
104+
delete process.env[`${ENV_DEFAULT_PREFIX}MISSING`]
104105

105106
expect(() => getConfigFromEnvVar("MISSING"))
106-
.toThrow("Environment variable CDK_CONFIG_MISSING is not set")
107+
.toThrow(`Environment variable ${ENV_DEFAULT_PREFIX}MISSING is not set`)
107108
})
108109

109110
test("getConfigFromEnvVar supports alternate prefixes", () => {
@@ -113,36 +114,36 @@ describe("config helpers", () => {
113114
})
114115

115116
test("getBooleanConfigFromEnvVar maps string booleans", () => {
116-
process.env.CDK_CONFIG_FEATURE_FLAG = "true "
117-
process.env.CDK_CONFIG_OTHER_FLAG = " false"
117+
process.env[`${ENV_DEFAULT_PREFIX}FEATURE_FLAG`] = "true "
118+
process.env[`${ENV_DEFAULT_PREFIX}OTHER_FLAG`] = " false"
118119

119120
expect(getBooleanConfigFromEnvVar("FEATURE_FLAG")).toBe(true)
120121
expect(getBooleanConfigFromEnvVar("OTHER_FLAG")).toBe(false)
121122
})
122123

123124
test("getBooleanConfigFromEnvVar uses default value when env var is not set", () => {
124-
delete process.env.CDK_CONFIG_BOOL_MISSING
125+
delete process.env[`${ENV_DEFAULT_PREFIX}BOOL_MISSING`]
125126

126-
expect(getBooleanConfigFromEnvVar("BOOL_MISSING", "CDK_CONFIG_", "true")).toBe(true)
127-
expect(getBooleanConfigFromEnvVar("BOOL_MISSING", "CDK_CONFIG_", "false")).toBe(false)
127+
expect(getBooleanConfigFromEnvVar("BOOL_MISSING", ENV_DEFAULT_PREFIX, "true")).toBe(true)
128+
expect(getBooleanConfigFromEnvVar("BOOL_MISSING", ENV_DEFAULT_PREFIX, "false")).toBe(false)
128129
})
129130

130131
test("getNumberConfigFromEnvVar parses numeric strings", () => {
131-
process.env.CDK_CONFIG_TIMEOUT = "45"
132+
process.env[`${ENV_DEFAULT_PREFIX}TIMEOUT`] = "45"
132133

133134
expect(getNumberConfigFromEnvVar("TIMEOUT")).toBe(45)
134135
})
135136

136137
test("getNumberConfigFromEnvVar uses default value when env var is not set", () => {
137-
delete process.env.CDK_CONFIG_NUM_MISSING
138+
delete process.env[`${ENV_DEFAULT_PREFIX}NUM_MISSING`]
138139

139-
expect(getNumberConfigFromEnvVar("NUM_MISSING", "CDK_CONFIG_", "99")).toBe(99)
140+
expect(getNumberConfigFromEnvVar("NUM_MISSING", ENV_DEFAULT_PREFIX, "99")).toBe(99)
140141
})
141142

142143
test("getConfigFromEnvVar ignores default value when env var is set", () => {
143-
process.env.CDK_CONFIG_STACK_NAME = "primary"
144+
process.env[`${ENV_DEFAULT_PREFIX}STACK_NAME`] = "primary"
144145

145-
expect(getConfigFromEnvVar("STACK_NAME", "CDK_CONFIG_", "ignored")).toBe("primary")
146+
expect(getConfigFromEnvVar("STACK_NAME", ENV_DEFAULT_PREFIX, "ignored")).toBe("primary")
146147
})
147148

148149
test("getTrustStoreVersion returns the version ID from S3", async () => {

0 commit comments

Comments
 (0)