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
|
let cleanupEnv: () => void
|
||||||
|
|
||||||
beforeAll(() => {
|
beforeAll(() => {
|
||||||
cleanupEnv = config.setEnv({
|
cleanupEnv = config.setCoreEnv({
|
||||||
GOOGLE_CLIENT_ID: "test",
|
GOOGLE_CLIENT_ID: "test",
|
||||||
GOOGLE_CLIENT_SECRET: "test",
|
GOOGLE_CLIENT_SECRET: "test",
|
||||||
})
|
})
|
||||||
|
|
|
@ -218,20 +218,45 @@ class TestConfiguration {
|
||||||
*/
|
*/
|
||||||
setEnv(newEnvVars: Partial<typeof env>): () => void {
|
setEnv(newEnvVars: Partial<typeof env>): () => void {
|
||||||
const oldEnv = cloneDeep(env)
|
const oldEnv = cloneDeep(env)
|
||||||
const oldCoreEnv = cloneDeep(coreEnv)
|
|
||||||
|
|
||||||
let key: keyof typeof newEnvVars
|
let key: keyof typeof newEnvVars
|
||||||
for (key in newEnvVars) {
|
for (key in newEnvVars) {
|
||||||
env._set(key, newEnvVars[key])
|
env._set(key, newEnvVars[key])
|
||||||
coreEnv._set(key, newEnvVars[key])
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
for (const [key, value] of Object.entries(oldEnv)) {
|
for (const [key, value] of Object.entries(oldEnv)) {
|
||||||
env._set(key, value)
|
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)
|
coreEnv._set(key, value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue