taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 30bdfb6bab274e1e35f0371f2ee6285dccbcedd7
parent bd80547962c7913269946808f84aa69afce434bb
Author: Florian Dold <florian@dold.me>
Date:   Mon,  6 Jul 2026 10:59:32 +0200

harness: add --token-duration argument to advanced-tokens-1 playground

Diffstat:
Mpackages/taler-harness/src/index.ts | 2++
Mpackages/taler-harness/src/playground.ts | 24++++++++++++++++++------
2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/packages/taler-harness/src/index.ts b/packages/taler-harness/src/index.ts @@ -1800,12 +1800,14 @@ playgroundCli .requiredOption("merchantPw", ["--merchant-pw"], clk.STRING) .maybeOption("continueFamily", ["--continue"], clk.STRING) .maybeOption("discountName", ["--discount-name"], clk.STRING) + .maybeOption("tokenDuration", ["--token-duration"], clk.STRING) .action(async (args) => { await runPlaygroundAdvancedTokens1({ merchantPw: args.exp.merchantPw, merchantUrl: args.exp.merchantUrl, continueFamily: args.exp.continueFamily, discountName: args.exp.discountName, + tokenDuration: args.exp.tokenDuration, }); }); diff --git a/packages/taler-harness/src/playground.ts b/packages/taler-harness/src/playground.ts @@ -25,6 +25,7 @@ import { OrderVersion, PostOrderRequest, TalerMerchantInstanceHttpClient, + TalerProtocolDuration, TokenFamilyKind, encodeCrock, getRandomBytes, @@ -130,6 +131,11 @@ export interface PlaygroundAdvancedTokensArgs { * Name suffix for the discount token. */ discountName?: string; + + /** + * Duration of the issued subscription/donation tokens. + */ + tokenDuration?: string; } export async function runPlaygroundAdvancedTokens1( @@ -162,14 +168,22 @@ export async function runPlaygroundAdvancedTokens1( let discountName = args.discountName ?? "Test"; + let duration: TalerProtocolDuration; + + if (args.tokenDuration) { + duration = Duration.toTalerProtocolDuration( + Duration.fromPrettyString(args.tokenDuration), + ); + } else { + duration = Duration.toTalerProtocolDuration(Duration.fromSpec({ days: 2 })); + } + if (args.continueFamily == null) { await merchantClient.createTokenFamily(tok.access_token, { name: discountName, slug: slugDiscount1, description: "My Discount 1 (valid two minutes)", - duration: Duration.toTalerProtocolDuration( - Duration.fromSpec({ days: 2 }), - ), + duration, valid_before: AbsoluteTime.toProtocolTimestamp( AbsoluteTime.addDuration( AbsoluteTime.now(), @@ -186,9 +200,7 @@ export async function runPlaygroundAdvancedTokens1( name: "subscription1", slug: slugSubscription1, description: "My Subscription 1 (valid one minute)", - duration: Duration.toTalerProtocolDuration( - Duration.fromSpec({ days: 2 }), - ), + duration, valid_before: AbsoluteTime.toProtocolTimestamp( AbsoluteTime.addDuration( AbsoluteTime.now(),