aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--integrationtests/template.conf3
-rwxr-xr-xintegrationtests/test-refund.sh24
-rwxr-xr-xintegrationtests/test-tip.sh19
-rw-r--r--src/headless/taler-wallet-cli.ts22
4 files changed, 63 insertions, 5 deletions
diff --git a/integrationtests/template.conf b/integrationtests/template.conf
index 99721d3d6..306a9c674 100644
--- a/integrationtests/template.conf
+++ b/integrationtests/template.conf
@@ -36,6 +36,9 @@ FORCE_AUDIT = YES
[instance-default]
KEYFILE = ${TALER_DATA_HOME}/merchant/default.priv
NAME = Merchant Inc.
+TIP_EXCHANGE = http://localhost:8081/
+# TODO necessary to specify a different key here?
+TIP_RESERVE_PRIV_FILENAME = ${TALER_DATA_HOME}/merchant/default.priv
[auditor]
DB = postgres
diff --git a/integrationtests/test-refund.sh b/integrationtests/test-refund.sh
new file mode 100755
index 000000000..40dc65f57
--- /dev/null
+++ b/integrationtests/test-refund.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+# Script to check that the wallet can handle refund URIs and actually process the refund
+
+source "common.sh"
+normal_start_and_wait "refund"
+
+echo "Withdraw TESTKUDOS"
+taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing withdraw -e "$EXCHANGE_URL" -b "$BANK_URL" -a "TESTKUDOS:10" >>"$LOG" 2>>"$LOG"
+echo -n "Balance after withdrawal: "
+taler-wallet-cli --wallet-db="$WALLET_DB" balance 2>>"$LOG"
+REFUND_URI=$(taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing gen-refund-uri \
+ -m "$MERCHANT_URL" -k sandbox \
+ -s "first refund" -a "TESTKUDOS:8" -r "TESTKUDOS:2" 2>>"$LOG" | grep -E -m 1 -o "taler://refund.*insecure=1")
+echo -n "Balance after payment: "
+taler-wallet-cli --wallet-db="$WALLET_DB" balance 2>>"$LOG"
+echo "Handling refund: $REFUND_URI"
+taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle handle-uri "$REFUND_URI" 2>"$LOG"
+taler-wallet-cli --wallet-db="$WALLET_DB" run-until-done 2>>"$LOG" >>"$LOG"
+echo -n "Balance after first refund: "
+taler-wallet-cli --wallet-db="$WALLET_DB" balance 2>>"$LOG"
+# TODO how to test second refund for same purchase?
+
+echo "SUCCESS"
+exit 0
diff --git a/integrationtests/test-tip.sh b/integrationtests/test-tip.sh
new file mode 100755
index 000000000..1a0ea2817
--- /dev/null
+++ b/integrationtests/test-tip.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+# Script to check that the wallet can handle tip URIs and actually process the tips
+
+source "common.sh"
+normal_start_and_wait "tip"
+
+# TODO fund exchange tipping reserve: 404 tipping reserve unknown at exchange
+TIP_URI=$(taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing gen-tip-uri \
+ -m "$MERCHANT_URL" -k sandbox -a "TESTKUDOS:5" 2>>"$LOG" | grep -E -m 1 -o "taler://tip.*insecure=1")
+echo -n "Balance after tip: "
+taler-wallet-cli --wallet-db="$WALLET_DB" balance 2>>"$LOG"
+echo "Handling tip: $TIP_URI"
+taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle handle-uri "$TIP_URI" 2>"$LOG"
+taler-wallet-cli --wallet-db="$WALLET_DB" run-until-done 2>>"$LOG" >>"$LOG"
+echo -n "Balance after first tip: "
+taler-wallet-cli --wallet-db="$WALLET_DB" balance 2>>"$LOG"
+
+echo "SUCCESS"
+exit 0
diff --git a/src/headless/taler-wallet-cli.ts b/src/headless/taler-wallet-cli.ts
index 3da01a2dd..483a9e7ce 100644
--- a/src/headless/taler-wallet-cli.ts
+++ b/src/headless/taler-wallet-cli.ts
@@ -623,12 +623,18 @@ testCli
.requiredOption("amount", ["-a", "--amount"], clk.STRING, {
default: "TESTKUDOS:10",
})
+ .maybeOption("merchant", ["-m", "--merchant"], clk.STRING, {
+ default: "https://backend.test.taler.net/",
+ })
+ .maybeOption("merchantApiKey", ["-k", "--merchant-api-key"], clk.STRING, {
+ default: "sandbox",
+ })
.action(async (args) => {
const merchantBackend = new MerchantBackendConnection(
- "https://backend.test.taler.net/",
- "sandbox",
+ args.genTipUri.merchant ?? "https://backend.test.taler.net/",
+ args.genTipUri.merchantApiKey ?? "sandbox",
);
- const tipUri = await merchantBackend.authorizeTip("TESTKUDOS:10", "test");
+ const tipUri = await merchantBackend.authorizeTip(args.genTipUri.amount, "test");
console.log(tipUri);
});
@@ -662,11 +668,17 @@ testCli
.requiredOption("summary", ["-s", "--summary"], clk.STRING, {
default: "Test Payment (for refund)",
})
+ .maybeOption("merchant", ["-m", "--merchant"], clk.STRING, {
+ default: "https://backend.test.taler.net/",
+ })
+ .maybeOption("merchantApiKey", ["-k", "--merchant-api-key"], clk.STRING, {
+ default: "sandbox",
+ })
.action(async (args) => {
const cmdArgs = args.genRefundUri;
const merchantBackend = new MerchantBackendConnection(
- "https://backend.test.taler.net/",
- "sandbox",
+ cmdArgs.merchant ?? "https://backend.test.taler.net/",
+ cmdArgs.merchantApiKey ?? "sandbox",
);
const orderResp = await merchantBackend.createOrder(
cmdArgs.amount,