From c3ca3aa7fcf7065669ed2069cd5acad9e472e2ae Mon Sep 17 00:00:00 2001 From: MS Date: Mon, 1 Feb 2021 13:13:43 +0100 Subject: Allow passing a env when running processes. This brings the libeufin-basic test to pass. --- .../taler-wallet-cli/src/integrationtests/harness.ts | 19 +++++++++++++++++++ .../taler-wallet-cli/src/integrationtests/libeufin.ts | 14 ++++++-------- 2 files changed, 25 insertions(+), 8 deletions(-) (limited to 'packages/taler-wallet-cli/src') 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 @@ -112,6 +112,21 @@ interface WaitResult { signal: NodeJS.Signals | null; } +/** + * 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. */ @@ -175,6 +190,7 @@ export async function runCommand( logName: string, command: string, args: string[], + env: {[index: string]: string | undefined} = process.env ): Promise { 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}) ); } -- cgit v1.2.3