aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/taler-util/src/time.ts13
-rw-r--r--packages/taler-wallet-cli/src/harness/harness.ts95
-rw-r--r--packages/taler-wallet-cli/src/harness/helpers.ts15
-rw-r--r--packages/taler-wallet-cli/src/harness/merchantApiTypes.ts83
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-clause-schnorr.ts9
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-libeufin-basic.ts6
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-urls.ts19
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-merchant-refund-api.ts9
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts6
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts13
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts24
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-refund.ts19
12 files changed, 182 insertions, 129 deletions
diff --git a/packages/taler-util/src/time.ts b/packages/taler-util/src/time.ts
index 43cb7ad4d..344bc0f74 100644
--- a/packages/taler-util/src/time.ts
+++ b/packages/taler-util/src/time.ts
@@ -101,6 +101,9 @@ export namespace Duration {
export function getForever(): Duration {
return { d_ms: "forever" };
}
+ export function getZero(): Duration {
+ return { d_ms: 0 };
+ }
export function fromTalerProtocolDuration(
d: TalerProtocolDuration,
): Duration {
@@ -113,6 +116,16 @@ export namespace Duration {
d_ms: d.d_us / 1000,
};
}
+ export function toTalerProtocolDuration(d: Duration): TalerProtocolDuration {
+ if (d.d_ms === "forever") {
+ return {
+ d_us: "forever",
+ };
+ }
+ return {
+ d_us: d.d_ms * 1000,
+ };
+ }
}
export namespace AbsoluteTime {
diff --git a/packages/taler-wallet-cli/src/harness/harness.ts b/packages/taler-wallet-cli/src/harness/harness.ts
index 46ddd0ed2..30503e488 100644
--- a/packages/taler-wallet-cli/src/harness/harness.ts
+++ b/packages/taler-wallet-cli/src/harness/harness.ts
@@ -24,56 +24,53 @@
/**
* Imports
*/
-import * as util from "util";
-import * as fs from "fs";
-import * as path from "path";
-import * as http from "http";
-import * as readline from "readline";
-import { deepStrictEqual } from "assert";
-import { ChildProcess, spawn } from "child_process";
-import { URL } from "url";
-import axios, { AxiosError } from "axios";
-import {
- codecForMerchantOrderPrivateStatusResponse,
- codecForPostOrderResponse,
- PostOrderRequest,
- PostOrderResponse,
- MerchantOrderPrivateStatusResponse,
- TippingReserveStatus,
- TipCreateConfirmation,
- TipCreateRequest,
- MerchantInstancesResponse,
-} from "./merchantApiTypes";
-import {
- BankServiceHandle,
- HarnessExchangeBankAccount,
- NodeHttpLib,
- openPromise,
- TalerError,
- WalletCoreApiClient,
-} from "@gnu-taler/taler-wallet-core";
import {
AmountJson,
Amounts,
- Configuration,
AmountString,
- Codec,
- buildCodecForObject,
- codecForString,
- Duration,
- parsePaytoUri,
+ Configuration,
CoreApiResponse,
createEddsaKeyPair,
+ Duration,
eddsaGetPublic,
EddsaKeyPair,
encodeCrock,
- getRandomBytes,
hash,
- stringToBytes,
j2s,
+ parsePaytoUri,
+ stringToBytes,
+ TalerProtocolDuration,
} from "@gnu-taler/taler-util";
+import {
+ BankServiceHandle,
+ HarnessExchangeBankAccount,
+ NodeHttpLib,
+ openPromise,
+ TalerError,
+ WalletCoreApiClient,
+} from "@gnu-taler/taler-wallet-core";
+import { deepStrictEqual } from "assert";
+import axios, { AxiosError } from "axios";
+import { ChildProcess, spawn } from "child_process";
+import * as fs from "fs";
+import * as http from "http";
+import * as path from "path";
+import * as readline from "readline";
+import { URL } from "url";
+import * as util from "util";
import { CoinConfig } from "./denomStructures.js";
import { LibeufinNexusApi, LibeufinSandboxApi } from "./libeufin-apis.js";
+import {
+ codecForMerchantOrderPrivateStatusResponse,
+ codecForPostOrderResponse,
+ MerchantInstancesResponse,
+ MerchantOrderPrivateStatusResponse,
+ PostOrderRequest,
+ PostOrderResponse,
+ TipCreateConfirmation,
+ TipCreateRequest,
+ TippingReserveStatus,
+} from "./merchantApiTypes";
const exec = util.promisify(require("child_process").exec);
@@ -1712,7 +1709,8 @@ export class MerchantService implements MerchantServiceInterface {
console.log("adding instance");
const url = `http://localhost:${this.merchantConfig.httpPort}/management/instances`;
const auth = instanceConfig.auth ?? { method: "external" };
- await axios.post(url, {
+
+ const body: MerchantInstanceConfig = {
auth,
payto_uris: instanceConfig.paytoUris,
id: instanceConfig.id,
@@ -1729,11 +1727,16 @@ export class MerchantService implements MerchantServiceInterface {
`${this.merchantConfig.currency}:1.0`,
default_wire_transfer_delay:
instanceConfig.defaultWireTransferDelay ??
- Duration.fromSpec({
- days: 1,
- }),
- default_pay_delay: instanceConfig.defaultPayDelay ?? { d_ms: "forever" },
- });
+ Duration.toTalerProtocolDuration(
+ Duration.fromSpec({
+ days: 1,
+ }),
+ ),
+ default_pay_delay:
+ instanceConfig.defaultPayDelay ??
+ Duration.toTalerProtocolDuration(Duration.getForever()),
+ };
+ await axios.post(url, body);
}
makeInstanceBaseUrl(instanceName?: string): string {
@@ -1765,8 +1768,8 @@ export interface PartialMerchantInstanceConfig {
defaultMaxWireFee?: string;
defaultMaxDepositFee?: string;
defaultWireFeeAmortization?: number;
- defaultWireTransferDelay?: Duration;
- defaultPayDelay?: Duration;
+ defaultWireTransferDelay?: TalerProtocolDuration;
+ defaultPayDelay?: TalerProtocolDuration;
}
export interface MerchantInstanceConfig {
@@ -1779,8 +1782,8 @@ export interface MerchantInstanceConfig {
default_max_wire_fee: string;
default_max_deposit_fee: string;
default_wire_fee_amortization: number;
- default_wire_transfer_delay: Duration;
- default_pay_delay: Duration;
+ default_wire_transfer_delay: TalerProtocolDuration;
+ default_pay_delay: TalerProtocolDuration;
}
type TestStatus = "pass" | "fail" | "skip";
diff --git a/packages/taler-wallet-cli/src/harness/helpers.ts b/packages/taler-wallet-cli/src/harness/helpers.ts
index 117bcdcf8..3840dcf94 100644
--- a/packages/taler-wallet-cli/src/harness/helpers.ts
+++ b/packages/taler-wallet-cli/src/harness/helpers.ts
@@ -30,7 +30,12 @@ import {
Duration,
PreparePayResultType,
} from "@gnu-taler/taler-util";
-import { BankAccessApi, BankApi, HarnessExchangeBankAccount, WalletApiOperation } from "@gnu-taler/taler-wallet-core";
+import {
+ BankAccessApi,
+ BankApi,
+ HarnessExchangeBankAccount,
+ WalletApiOperation,
+} from "@gnu-taler/taler-wallet-core";
import { CoinConfig, defaultCoinConfig } from "./denomStructures.js";
import {
FaultInjectedExchangeService,
@@ -117,14 +122,18 @@ export async function createSimpleTestkudosEnvironment(
id: "default",
name: "Default Instance",
paytoUris: [getPayto("merchant-default")],
- defaultWireTransferDelay: Duration.fromSpec({ minutes: 1 }),
+ defaultWireTransferDelay: Duration.toTalerProtocolDuration(
+ Duration.fromSpec({ minutes: 1 }),
+ ),
});
await merchant.addInstance({
id: "minst1",
name: "minst1",
paytoUris: [getPayto("minst1")],
- defaultWireTransferDelay: Duration.fromSpec({ minutes: 1 }),
+ defaultWireTransferDelay: Duration.toTalerProtocolDuration(
+ Duration.fromSpec({ minutes: 1 }),
+ ),
});
console.log("setup done!");
diff --git a/packages/taler-wallet-cli/src/harness/merchantApiTypes.ts b/packages/taler-wallet-cli/src/harness/merchantApiTypes.ts
index dcb1a2b42..35062b579 100644
--- a/packages/taler-wallet-cli/src/harness/merchantApiTypes.ts
+++ b/packages/taler-wallet-cli/src/harness/merchantApiTypes.ts
@@ -42,6 +42,7 @@ import {
CoinPublicKeyString,
EddsaPublicKeyString,
codecForAmountString,
+ TalerProtocolDuration,
} from "@gnu-taler/taler-util";
export interface PostOrderRequest {
@@ -51,7 +52,7 @@ export interface PostOrderRequest {
// if set, the backend will then set the refund deadline to the current
// time plus the specified delay.
- refund_delay?: Duration;
+ refund_delay?: TalerProtocolDuration;
// specifies the payment target preferred by the client. Can be used
// to select among the various (active) wire methods supported by the instance.
@@ -79,44 +80,48 @@ export const codecForPostOrderResponse = (): Codec<PostOrderResponse> =>
.property("token", codecOptional(codecForString()))
.build("PostOrderResponse");
-export const codecForCheckPaymentPaidResponse = (): Codec<CheckPaymentPaidResponse> =>
- buildCodecForObject<CheckPaymentPaidResponse>()
- .property("order_status_url", codecForString())
- .property("order_status", codecForConstString("paid"))
- .property("refunded", codecForBoolean())
- .property("wired", codecForBoolean())
- .property("deposit_total", codecForAmountString())
- .property("exchange_ec", codecForNumber())
- .property("exchange_hc", codecForNumber())
- .property("refund_amount", codecForAmountString())
- .property("contract_terms", codecForContractTerms())
- // FIXME: specify
- .property("wire_details", codecForAny())
- .property("wire_reports", codecForAny())
- .property("refund_details", codecForAny())
- .build("CheckPaymentPaidResponse");
-
-export const codecForCheckPaymentUnpaidResponse = (): Codec<CheckPaymentUnpaidResponse> =>
- buildCodecForObject<CheckPaymentUnpaidResponse>()
- .property("order_status", codecForConstString("unpaid"))
- .property("taler_pay_uri", codecForString())
- .property("order_status_url", codecForString())
- .property("already_paid_order_id", codecOptional(codecForString()))
- .build("CheckPaymentPaidResponse");
-
-export const codecForCheckPaymentClaimedResponse = (): Codec<CheckPaymentClaimedResponse> =>
- buildCodecForObject<CheckPaymentClaimedResponse>()
- .property("order_status", codecForConstString("claimed"))
- .property("contract_terms", codecForContractTerms())
- .build("CheckPaymentClaimedResponse");
-
-export const codecForMerchantOrderPrivateStatusResponse = (): Codec<MerchantOrderPrivateStatusResponse> =>
- buildCodecForUnion<MerchantOrderPrivateStatusResponse>()
- .discriminateOn("order_status")
- .alternative("paid", codecForCheckPaymentPaidResponse())
- .alternative("unpaid", codecForCheckPaymentUnpaidResponse())
- .alternative("claimed", codecForCheckPaymentClaimedResponse())
- .build("MerchantOrderPrivateStatusResponse");
+export const codecForCheckPaymentPaidResponse =
+ (): Codec<CheckPaymentPaidResponse> =>
+ buildCodecForObject<CheckPaymentPaidResponse>()
+ .property("order_status_url", codecForString())
+ .property("order_status", codecForConstString("paid"))
+ .property("refunded", codecForBoolean())
+ .property("wired", codecForBoolean())
+ .property("deposit_total", codecForAmountString())
+ .property("exchange_ec", codecForNumber())
+ .property("exchange_hc", codecForNumber())
+ .property("refund_amount", codecForAmountString())
+ .property("contract_terms", codecForContractTerms())
+ // FIXME: specify
+ .property("wire_details", codecForAny())
+ .property("wire_reports", codecForAny())
+ .property("refund_details", codecForAny())
+ .build("CheckPaymentPaidResponse");
+
+export const codecForCheckPaymentUnpaidResponse =
+ (): Codec<CheckPaymentUnpaidResponse> =>
+ buildCodecForObject<CheckPaymentUnpaidResponse>()
+ .property("order_status", codecForConstString("unpaid"))
+ .property("taler_pay_uri", codecForString())
+ .property("order_status_url", codecForString())
+ .property("already_paid_order_id", codecOptional(codecForString()))
+ .build("CheckPaymentPaidResponse");
+
+export const codecForCheckPaymentClaimedResponse =
+ (): Codec<CheckPaymentClaimedResponse> =>
+ buildCodecForObject<CheckPaymentClaimedResponse>()
+ .property("order_status", codecForConstString("claimed"))
+ .property("contract_terms", codecForContractTerms())
+ .build("CheckPaymentClaimedResponse");
+
+export const codecForMerchantOrderPrivateStatusResponse =
+ (): Codec<MerchantOrderPrivateStatusResponse> =>
+ buildCodecForUnion<MerchantOrderPrivateStatusResponse>()
+ .discriminateOn("order_status")
+ .alternative("paid", codecForCheckPaymentPaidResponse())
+ .alternative("unpaid", codecForCheckPaymentUnpaidResponse())
+ .alternative("claimed", codecForCheckPaymentClaimedResponse())
+ .build("MerchantOrderPrivateStatusResponse");
export type MerchantOrderPrivateStatusResponse =
| CheckPaymentPaidResponse
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-clause-schnorr.ts b/packages/taler-wallet-cli/src/integrationtests/test-clause-schnorr.ts
index c8b4176d5..5a84866ac 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-clause-schnorr.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-clause-schnorr.ts
@@ -53,12 +53,8 @@ export async function runClauseSchnorrTest(t: GlobalTestState) {
name: "rsa_dummy",
});
- const {
- wallet,
- bank,
- exchange,
- merchant,
- } = await createSimpleTestkudosEnvironment(t, coinConfig);
+ const { wallet, bank, exchange, merchant } =
+ await createSimpleTestkudosEnvironment(t, coinConfig);
// Withdraw digital cash into the wallet.
@@ -98,3 +94,4 @@ export async function runClauseSchnorrTest(t: GlobalTestState) {
}
runClauseSchnorrTest.suites = ["wallet"];
+runClauseSchnorrTest.excludeByDefault = true;
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-basic.ts b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-basic.ts
index 8f7d77712..aa5d4c9c0 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-basic.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-basic.ts
@@ -20,6 +20,8 @@
import {
AbsoluteTime,
ContractTerms,
+ Duration,
+ durationFromSpec,
} from "@gnu-taler/taler-util";
import {
WalletApiOperation,
@@ -209,7 +211,9 @@ export async function createLibeufinTestEnvironment(
id: "default",
name: "Default Instance",
paytoUris: [`payto://iban/${merchantIban}?receiver-name=Merchant`],
- defaultWireTransferDelay: { d_ms: 0 },
+ defaultWireTransferDelay: Duration.toTalerProtocolDuration(
+ Duration.getZero(),
+ ),
});
console.log("setup done!");
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-urls.ts b/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-urls.ts
index 6f76e2325..f72189014 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-urls.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-urls.ts
@@ -17,6 +17,7 @@
/**
* Imports.
*/
+import { Duration } from "@gnu-taler/taler-util";
import axios from "axios";
import {
ExchangeService,
@@ -24,7 +25,7 @@ import {
MerchantApiClient,
MerchantService,
setupDb,
- getPayto
+ getPayto,
} from "../harness/harness.js";
/**
@@ -67,9 +68,13 @@ export async function runMerchantInstancesUrlsTest(t: GlobalTestState) {
address: {},
default_max_deposit_fee: "TESTKUDOS:1",
default_max_wire_fee: "TESTKUDOS:1",
- default_pay_delay: { d_ms: 60000 },
+ default_pay_delay: Duration.toTalerProtocolDuration(
+ Duration.fromSpec({ seconds: 60 }),
+ ),
default_wire_fee_amortization: 1,
- default_wire_transfer_delay: { d_ms: 60000 },
+ default_wire_transfer_delay: Duration.toTalerProtocolDuration(
+ Duration.fromSpec({ seconds: 60 }),
+ ),
jurisdiction: {},
name: "My Default Instance",
payto_uris: [getPayto("bar")],
@@ -84,9 +89,13 @@ export async function runMerchantInstancesUrlsTest(t: GlobalTestState) {
address: {},
default_max_deposit_fee: "TESTKUDOS:1",
default_max_wire_fee: "TESTKUDOS:1",
- default_pay_delay: { d_ms: 60000 },
+ default_pay_delay: Duration.toTalerProtocolDuration(
+ Duration.fromSpec({ seconds: 60 }),
+ ),
default_wire_fee_amortization: 1,
- default_wire_transfer_delay: { d_ms: 60000 },
+ default_wire_transfer_delay: Duration.toTalerProtocolDuration(
+ Duration.fromSpec({ seconds: 60 }),
+ ),
jurisdiction: {},
name: "My Second Instance",
payto_uris: [getPayto("bar")],
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-merchant-refund-api.ts b/packages/taler-wallet-cli/src/integrationtests/test-merchant-refund-api.ts
index a9dbeef9a..539904f1c 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-merchant-refund-api.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-merchant-refund-api.ts
@@ -32,6 +32,7 @@ import {
URL,
durationFromSpec,
PreparePayResultType,
+ Duration,
} from "@gnu-taler/taler-util";
import axios from "axios";
import {
@@ -57,7 +58,9 @@ async function testRefundApiWithFulfillmentUrl(
amount: "TESTKUDOS:5",
fulfillment_url: "https://example.com/fulfillment",
},
- refund_delay: durationFromSpec({ minutes: 5 }),
+ refund_delay: Duration.toTalerProtocolDuration(
+ durationFromSpec({ minutes: 5 }),
+ ),
});
let orderStatus = await MerchantPrivateApi.queryPrivateOrderStatus(merchant, {
@@ -171,7 +174,9 @@ async function testRefundApiWithFulfillmentMessage(
amount: "TESTKUDOS:5",
fulfillment_message: "Thank you for buying foobar",
},
- refund_delay: durationFromSpec({ minutes: 5 }),
+ refund_delay: Duration.toTalerProtocolDuration(
+ durationFromSpec({ minutes: 5 }),
+ ),
});
let orderStatus = await MerchantPrivateApi.queryPrivateOrderStatus(merchant, {
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts b/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts
index 574177c8c..4c2a2f94a 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts
@@ -22,7 +22,7 @@ import {
createSimpleTestkudosEnvironment,
withdrawViaBank,
} from "../harness/helpers.js";
-import { durationFromSpec } from "@gnu-taler/taler-util";
+import { Duration, durationFromSpec } from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
/**
@@ -48,7 +48,9 @@ export async function runRefundAutoTest(t: GlobalTestState) {
d_us: 3000 * 1000,
},
},
- refund_delay: durationFromSpec({ minutes: 5 }),
+ refund_delay: Duration.toTalerProtocolDuration(
+ durationFromSpec({ minutes: 5 }),
+ ),
});
let orderStatus = await MerchantPrivateApi.queryPrivateOrderStatus(merchant, {
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts b/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts
index 24600384b..b6cefda86 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts
@@ -25,6 +25,7 @@ import {
} from "../harness/helpers.js";
import {
AbsoluteTime,
+ Duration,
durationFromSpec,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
@@ -35,12 +36,8 @@ import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
export async function runRefundGoneTest(t: GlobalTestState) {
// Set up test environment
- const {
- wallet,
- bank,
- exchange,
- merchant,
- } = await createSimpleTestkudosEnvironment(t);
+ const { wallet, bank, exchange, merchant } =
+ await createSimpleTestkudosEnvironment(t);
// Withdraw digital cash into the wallet.
@@ -62,7 +59,9 @@ export async function runRefundGoneTest(t: GlobalTestState) {
),
),
},
- refund_delay: durationFromSpec({ minutes: 1 }),
+ refund_delay: Duration.toTalerProtocolDuration(
+ durationFromSpec({ minutes: 1 }),
+ ),
});
let orderStatus = await MerchantPrivateApi.queryPrivateOrderStatus(merchant, {
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts b/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts
index 47c2293e2..e4e96a180 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts
@@ -17,12 +17,20 @@
/**
* Imports.
*/
-import { GlobalTestState, delayMs, MerchantPrivateApi } from "../harness/harness.js";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "../harness/helpers.js";
+import {
+ GlobalTestState,
+ delayMs,
+ MerchantPrivateApi,
+} from "../harness/harness.js";
+import {
+ createSimpleTestkudosEnvironment,
+ withdrawViaBank,
+} from "../harness/helpers.js";
import {
TransactionType,
Amounts,
durationFromSpec,
+ Duration,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
@@ -32,12 +40,8 @@ import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
export async function runRefundIncrementalTest(t: GlobalTestState) {
// Set up test environment
- const {
- wallet,
- bank,
- exchange,
- merchant,
- } = await createSimpleTestkudosEnvironment(t);
+ const { wallet, bank, exchange, merchant } =
+ await createSimpleTestkudosEnvironment(t);
// Withdraw digital cash into the wallet.
@@ -51,7 +55,9 @@ export async function runRefundIncrementalTest(t: GlobalTestState) {
amount: "TESTKUDOS:10",
fulfillment_url: "taler://fulfillment-success/thx",
},
- refund_delay: durationFromSpec({ minutes: 5 }),
+ refund_delay: Duration.toTalerProtocolDuration(
+ durationFromSpec({ minutes: 5 }),
+ ),
});
let orderStatus = await MerchantPrivateApi.queryPrivateOrderStatus(merchant, {
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-refund.ts b/packages/taler-wallet-cli/src/integrationtests/test-refund.ts
index f11771922..b63dad590 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund.ts
@@ -17,10 +17,13 @@
/**
* Imports.
*/
-import { durationFromSpec } from "@gnu-taler/taler-util";
+import { Duration, durationFromSpec } from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "../harness/helpers.js";
+import {
+ createSimpleTestkudosEnvironment,
+ withdrawViaBank,
+} from "../harness/helpers.js";
/**
* Run test for basic, bank-integrated withdrawal.
@@ -28,12 +31,8 @@ import { createSimpleTestkudosEnvironment, withdrawViaBank } from "../harness/he
export async function runRefundTest(t: GlobalTestState) {
// Set up test environment
- const {
- wallet,
- bank,
- exchange,
- merchant,
- } = await createSimpleTestkudosEnvironment(t);
+ const { wallet, bank, exchange, merchant } =
+ await createSimpleTestkudosEnvironment(t);
// Withdraw digital cash into the wallet.
@@ -47,7 +46,9 @@ export async function runRefundTest(t: GlobalTestState) {
amount: "TESTKUDOS:5",
fulfillment_url: "taler://fulfillment-success/thx",
},
- refund_delay: durationFromSpec({ minutes: 5 }),
+ refund_delay: Duration.toTalerProtocolDuration(
+ durationFromSpec({ minutes: 5 }),
+ ),
});
let orderStatus = await MerchantPrivateApi.queryPrivateOrderStatus(merchant, {