diff options
author | MS <ms@taler.net> | 2021-02-01 13:13:43 +0100 |
---|---|---|
committer | MS <ms@taler.net> | 2021-02-01 13:13:43 +0100 |
commit | c3ca3aa7fcf7065669ed2069cd5acad9e472e2ae (patch) | |
tree | a455bd478ae8dd492477551f42728926fab60491 | |
parent | ca2943b270aa47d794cce055dd5f1f90ec88729f (diff) |
Allow passing a env when running processes.
This brings the libeufin-basic test to pass.
-rw-r--r-- | packages/taler-wallet-cli/src/integrationtests/harness.ts | 19 | ||||
-rw-r--r-- | packages/taler-wallet-cli/src/integrationtests/libeufin.ts | 14 |
2 files changed, 25 insertions, 8 deletions
diff --git a/packages/taler-wallet-cli/src/integrationtests/harness.ts b/packages/taler-wallet-cli/src/integrationtests/harness.ts index eb14b32b9..3a56f4cda 100644 --- a/packages/taler-wallet-cli/src/integrationtests/harness.ts +++ b/packages/taler-wallet-cli/src/integrationtests/harness.ts @@ -113,6 +113,21 @@ interface WaitResult { } /** + * Returns a new object being the current environment + * plus the values given in the parameter. + */ +export function extendEnv(extension: {[index: string]: string}): {[index: string]: string | undefined} { + let ret: {[index: string]: string | undefined} = {}; + for (let v in process.env) { + ret[v] = process.env[v]; + } + for (let v in extension) { + ret[v] = extension[v]; + } + return ret; +} + +/** * Run a shell command, return stdout. */ export async function sh( @@ -175,6 +190,7 @@ export async function runCommand( logName: string, command: string, args: string[], + env: {[index: string]: string | undefined} = process.env ): Promise<string> { console.log("runing command", shellescape([command, ...args])); return new Promise((resolve, reject) => { @@ -182,6 +198,7 @@ export async function runCommand( const proc = spawn(command, args, { stdio: ["inherit", "pipe", "pipe"], shell: false, + env: env }); proc.stdout.on("data", (x) => { if (x instanceof Buffer) { @@ -323,12 +340,14 @@ export class GlobalTestState { command: string, args: string[], logName: string, + env: {[index: string] : string | undefined} = process.env ): ProcessWrapper { console.log( `spawning process (${logName}): ${shellescape([command, ...args])}`, ); const proc = spawn(command, args, { stdio: ["inherit", "pipe", "pipe"], + env: env }); console.log(`spawned process (${logName}) with pid ${proc.pid}`); proc.on("error", (err) => { diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts index 703f1522e..b4208801d 100644 --- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts +++ b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts @@ -24,6 +24,7 @@ import { pingProc, ProcessWrapper, runCommand, + extendEnv } from "./harness"; export interface LibeufinSandboxServiceInterface { @@ -72,11 +73,10 @@ export class LibeufinSandboxService implements LibeufinSandboxServiceInterface { [ "serve", "--port", - `${this.sandboxConfig.httpPort}`, - "--db-conn-string", - this.sandboxConfig.databaseJdbcUri, + `${this.sandboxConfig.httpPort}` ], "libeufin-sandbox", + extendEnv({LIBEUFIN_SANDBOX_DB_CONNECTION: this.sandboxConfig.databaseJdbcUri}) ); } @@ -114,10 +114,9 @@ export class LibeufinNexusService { "superuser", "admin", "--password", - "test", - "--db-conn-string", - this.nexusConfig.databaseJdbcUri, + "test" ], + extendEnv({LIBEUFIN_NEXUS_DB_CONNECTION: this.nexusConfig.databaseJdbcUri}) ); this.nexusProc = this.globalTestState.spawnService( @@ -126,10 +125,9 @@ export class LibeufinNexusService { "serve", "--port", `${this.nexusConfig.httpPort}`, - "--db-conn-string", - this.nexusConfig.databaseJdbcUri, ], "libeufin-nexus", + extendEnv({LIBEUFIN_NEXUS_DB_CONNECTION: this.nexusConfig.databaseJdbcUri}) ); } |