wallet-core/integrationtests/test-refund.sh

27 lines
1.2 KiB
Bash
Executable File

#!/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"
BALANCE_1=$(get_balance)
echo "Balance after withdrawal: $BALANCE_1"
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")
BALANCE_2=$(get_balance)
echo "Balance after payment: $BALANCE_2"
assert_less_than "$BALANCE_2" "$BALANCE_1"
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"
BALANCE_3=$(get_balance)
echo "Balance after first refund: $BALANCE_3"
assert_greater_than "$BALANCE_3" "$BALANCE_2"
# TODO how to test second refund for same purchase?
exit_success