From 122574fe05a7f568d4fa968ff4fcde0c403c8a4d Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 8 May 2020 10:13:52 -0300 Subject: Add test for refund and tip, fix cli testing gen-*-uri --- integrationtests/template.conf | 3 +++ integrationtests/test-refund.sh | 24 ++++++++++++++++++++++++ integrationtests/test-tip.sh | 19 +++++++++++++++++++ src/headless/taler-wallet-cli.ts | 22 +++++++++++++++++----- 4 files changed, 63 insertions(+), 5 deletions(-) create mode 100755 integrationtests/test-refund.sh create mode 100755 integrationtests/test-tip.sh 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, -- cgit v1.2.3