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:
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(),