diff options
author | Florian Dold <florian@dold.me> | 2024-01-29 12:24:46 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-01-29 12:24:46 +0100 |
commit | 64e340541ffcf10df4ef6400232c423aaecf81b9 (patch) | |
tree | 849ed0ec0e7d075ecf6f9cba718671ba9eb7fa7d /packages/taler-harness/src/harness | |
parent | 9dc9f464689d4294a1767e35fdae88e9689298c8 (diff) | |
download | wallet-core-64e340541ffcf10df4ef6400232c423aaecf81b9.tar.xz |
wallet-core: implement db migration check
Diffstat (limited to 'packages/taler-harness/src/harness')
-rw-r--r-- | packages/taler-harness/src/harness/harness.ts | 34 | ||||
-rw-r--r-- | packages/taler-harness/src/harness/helpers.ts | 2 |
2 files changed, 27 insertions, 9 deletions
diff --git a/packages/taler-harness/src/harness/harness.ts b/packages/taler-harness/src/harness/harness.ts index b2714f496..b9164a968 100644 --- a/packages/taler-harness/src/harness/harness.ts +++ b/packages/taler-harness/src/harness/harness.ts @@ -1885,16 +1885,39 @@ function tryUnixConnect(socketPath: string): Promise<void> { export interface WalletServiceOptions { useInMemoryDb?: boolean; + /** + * Use a particular DB path instead of the default one in the + * test environment. + */ + overrideDbPath?: string; name: string; } +/** + * A wallet service that listens on a unix domain socket for commands. + */ export class WalletService { walletProc: ProcessWrapper | undefined; + private internalDbPath: string; + constructor( private globalState: GlobalTestState, private opts: WalletServiceOptions, - ) {} + ) { + if (this.opts.overrideDbPath) { + this.internalDbPath = this.opts.overrideDbPath; + } else { + if (this.opts.useInMemoryDb) { + this.internalDbPath = ":memory:"; + } else { + this.internalDbPath = path.join( + this.globalState.testDir, + `walletdb-${this.opts.name}.sqlite3`, + ); + } + } + } get socketPath() { const unixPath = path.join( @@ -1905,14 +1928,7 @@ export class WalletService { } get dbPath() { - if (this.opts.useInMemoryDb) { - return ":memory:"; - } else { - return path.join( - this.globalState.testDir, - `walletdb-${this.opts.name}.sqlite3`, - ); - } + return this.internalDbPath; } async stop(): Promise<void> { diff --git a/packages/taler-harness/src/harness/helpers.ts b/packages/taler-harness/src/harness/helpers.ts index 7daa6c3c5..bb6f28246 100644 --- a/packages/taler-harness/src/harness/helpers.ts +++ b/packages/taler-harness/src/harness/helpers.ts @@ -405,6 +405,7 @@ export interface CreateWalletArgs { handleNotification?(wn: WalletNotification): void; name: string; persistent?: boolean; + overrideDbPath?: string; } export async function createWalletDaemonWithClient( @@ -414,6 +415,7 @@ export async function createWalletDaemonWithClient( const walletService = new WalletService(t, { name: args.name, useInMemoryDb: !args.persistent, + overrideDbPath: args.overrideDbPath, }); await walletService.start(); await walletService.pingUntilAvailable(); |