harness,wallet-cli: allow in-memory DB

This commit is contained in:
Florian Dold 2023-02-02 20:37:15 +01:00
parent 96101238af
commit 9d6613619e
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
3 changed files with 29 additions and 17 deletions

View File

@ -1906,33 +1906,42 @@ function tryUnixConnect(socketPath: string): Promise<void> {
});
}
export interface WalletServiceOptions {
useInMemoryDb?: boolean;
name: string;
}
export class WalletService {
walletProc: ProcessWrapper | undefined;
constructor(private globalState: GlobalTestState, private name: string) {}
constructor(
private globalState: GlobalTestState,
private opts: WalletServiceOptions,
) {}
get socketPath() {
const unixPath = path.join(this.globalState.testDir, `${this.name}.sock`);
const unixPath = path.join(
this.globalState.testDir,
`${this.opts.name}.sock`,
);
return unixPath;
}
async start(): Promise<void> {
const dbPath = path.join(
this.globalState.testDir,
`walletdb-${this.name}.json`,
);
let dbPath: string;
if (this.opts.useInMemoryDb) {
dbPath = ":memory:";
} else {
dbPath = path.join(
this.globalState.testDir,
`walletdb-${this.opts.name}.json`,
);
}
const unixPath = this.socketPath;
this.globalState.spawnService(
"taler-wallet-cli",
[
"--wallet-db",
dbPath,
"advanced",
"serve",
"--unix-path",
unixPath,
],
`wallet-${this.name}`,
["--wallet-db", dbPath, "advanced", "serve", "--unix-path", unixPath],
`wallet-${this.opts.name}`,
);
}

View File

@ -107,7 +107,10 @@ export async function runWalletNotificationsTest(t: GlobalTestState) {
console.log("setup done!");
const walletService = new WalletService(t, "wallet");
const walletService = new WalletService(t, {
name: "wallet",
useInMemoryDb: true,
});
await walletService.start();
await walletService.pingUntilAvailable();

View File

@ -250,7 +250,7 @@ async function createLocalWallet(
myHttpLib.setThrottling(false);
}
const wallet = await getDefaultNodeWallet({
persistentStoragePath: dbPath,
persistentStoragePath: dbPath !== ":memory:" ? dbPath : undefined,
httpLib: myHttpLib,
notifyHandler: (n) => {
logger.info(`wallet notification: ${j2s(n)}`);