Split withEnv, so the core env isn't touched in it.
This commit is contained in:
parent
0f54f64ad9
commit
c50e8fd05b
|
@ -39,7 +39,7 @@ describe("Google Sheets Integration", () => {
|
|||
let cleanupEnv: () => void
|
||||
|
||||
beforeAll(() => {
|
||||
cleanupEnv = config.setEnv({
|
||||
cleanupEnv = config.setCoreEnv({
|
||||
GOOGLE_CLIENT_ID: "test",
|
||||
GOOGLE_CLIENT_SECRET: "test",
|
||||
})
|
||||
|
|
|
@ -218,20 +218,45 @@ class TestConfiguration {
|
|||
*/
|
||||
setEnv(newEnvVars: Partial<typeof env>): () => void {
|
||||
const oldEnv = cloneDeep(env)
|
||||
const oldCoreEnv = cloneDeep(coreEnv)
|
||||
|
||||
let key: keyof typeof newEnvVars
|
||||
for (key in newEnvVars) {
|
||||
env._set(key, newEnvVars[key])
|
||||
coreEnv._set(key, newEnvVars[key])
|
||||
}
|
||||
|
||||
return () => {
|
||||
for (const [key, value] of Object.entries(oldEnv)) {
|
||||
env._set(key, value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const [key, value] of Object.entries(oldCoreEnv)) {
|
||||
async withCoreEnv(
|
||||
newEnvVars: Partial<typeof coreEnv>,
|
||||
f: () => Promise<void>
|
||||
) {
|
||||
let cleanup = this.setCoreEnv(newEnvVars)
|
||||
try {
|
||||
await f()
|
||||
} finally {
|
||||
cleanup()
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets the environment variables to the given values and returns a function
|
||||
* that can be called to reset the environment variables to their original values.
|
||||
*/
|
||||
setCoreEnv(newEnvVars: Partial<typeof coreEnv>): () => void {
|
||||
const oldEnv = cloneDeep(env)
|
||||
|
||||
let key: keyof typeof newEnvVars
|
||||
for (key in newEnvVars) {
|
||||
coreEnv._set(key, newEnvVars[key])
|
||||
}
|
||||
|
||||
return () => {
|
||||
for (const [key, value] of Object.entries(oldEnv)) {
|
||||
coreEnv._set(key, value)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue