diff options
author | Florian Dold <florian@dold.me> | 2024-04-02 20:46:20 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-04-02 20:46:20 +0200 |
commit | 43f8ef1c31a364bd620711d2444bf162c81589c5 (patch) | |
tree | 3f4094f60d7e2c8525e972b04de24dc14022e6f9 /packages/taler-wallet-core/src | |
parent | 2b2a8278844ae53818ca9845630d28dd5efde7d0 (diff) | |
download | wallet-core-43f8ef1c31a364bd620711d2444bf162c81589c5.tar.xz |
wallet-core: preparations for refresh-blocked test
Diffstat (limited to 'packages/taler-wallet-core/src')
-rw-r--r-- | packages/taler-wallet-core/src/dev-experiments.ts | 5 | ||||
-rw-r--r-- | packages/taler-wallet-core/src/refresh.ts | 8 | ||||
-rw-r--r-- | packages/taler-wallet-core/src/wallet.ts | 6 |
3 files changed, 19 insertions, 0 deletions
diff --git a/packages/taler-wallet-core/src/dev-experiments.ts b/packages/taler-wallet-core/src/dev-experiments.ts index 62f6d86f2..57810dbf4 100644 --- a/packages/taler-wallet-core/src/dev-experiments.ts +++ b/packages/taler-wallet-core/src/dev-experiments.ts @@ -67,6 +67,11 @@ export async function applyDevExperiment( throw Error("can't handle devmode URI unless devmode is active"); } + if (parsedUri.devExperimentId === "start-block-refresh") { + wex.ws.devExperimentState.blockRefreshes = true; + return; + } + if (parsedUri.devExperimentId == "insert-pending-refresh") { await wex.db.runReadWriteTx(["refreshGroups"], async (tx) => { const refreshGroupId = encodeCrock(getRandomBytes(32)); diff --git a/packages/taler-wallet-core/src/refresh.ts b/packages/taler-wallet-core/src/refresh.ts index dbd81387b..aece14e55 100644 --- a/packages/taler-wallet-core/src/refresh.ts +++ b/packages/taler-wallet-core/src/refresh.ts @@ -1046,6 +1046,14 @@ export async function processRefreshGroup( if (refreshGroup.timestampFinished) { return TaskRunResult.finished(); } + + if ( + wex.ws.config.testing.devModeActive && + wex.ws.devExperimentState.blockRefreshes + ) { + throw Error("refresh blocked"); + } + // Process refresh sessions of the group in parallel. logger.trace( `processing refresh sessions for ${refreshGroup.oldCoinPubs.length} old coins`, diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts index 311e91c3d..9536b3da8 100644 --- a/packages/taler-wallet-core/src/wallet.ts +++ b/packages/taler-wallet-core/src/wallet.ts @@ -1655,6 +1655,10 @@ export class Wallet { } } +export interface DevExperimentState { + blockRefreshes?: boolean; +} + /** * Internal state of the wallet. * @@ -1699,6 +1703,8 @@ export class InternalWalletState { return this._db; } + devExperimentState: DevExperimentState = {}; + lookupDenomCache(denomCacheKey: string): DenominationInfo | undefined { return this.denomCache.get(denomCacheKey); } |