harness: capture createdb/dropdb logs

This commit is contained in:
Florian Dold 2023-01-10 12:14:03 +01:00
parent cfe33c8e27
commit e8baaf5eb1
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B

View File

@ -63,7 +63,6 @@ import * as http from "http";
import * as path from "path";
import * as readline from "readline";
import { URL } from "url";
import * as util from "util";
import { CoinConfig } from "./denomStructures.js";
import { LibeufinNexusApi, LibeufinSandboxApi } from "./libeufin-apis.js";
import {
@ -78,8 +77,6 @@ import {
TippingReserveStatus,
} from "./merchantApiTypes.js";
const exec = util.promisify(child_process.exec);
const axios = axiosImp.default;
export async function delayMs(ms: number): Promise<void> {
@ -390,10 +387,14 @@ export interface DbInfo {
dbname: string;
}
export async function setupDb(gc: GlobalTestState): Promise<DbInfo> {
export async function setupDb(t: GlobalTestState): Promise<DbInfo> {
const dbname = "taler-integrationtest";
await exec(`dropdb "${dbname}" || true`);
await exec(`createdb "${dbname}"`);
try {
await runCommand(t, "dropdb", "dropdb", [dbname]);
} catch (e: any) {
logger.warn(`dropdb failed: ${e.toString()}`);
}
await runCommand(t, "createdb", "createdb", [dbname]);
return {
connStr: `postgres:///${dbname}`,
dbname,
@ -1631,7 +1632,12 @@ export class MerchantService implements MerchantServiceInterface {
}
async start(): Promise<void> {
await exec(`taler-merchant-dbinit -c "${this.configFilename}"`);
await runCommand(
this.globalState,
"merchant-dbinit",
"taler-merchant-dbinit",
["-c", this.configFilename],
);
this.proc = this.globalState.spawnService(
"taler-merchant-httpd",