integration test for handling the same pay URI multiple times

This commit is contained in:
Torsten Grote 2020-05-06 16:05:38 -03:00
parent 85af5421e5
commit b7c75bd56a
No known key found for this signature in database
GPG Key ID: 3E5F77D92CF891FF
4 changed files with 34 additions and 6 deletions

View File

@ -14,8 +14,8 @@ function setup_config() {
[[ "$(taler-merchant-httpd -v)" =~ "taler-merchant-httpd v" ]] || exit_skip " MISSING"
echo " FOUND"
trap 'jobs -p | xargs kill &> /dev/null || true' ERR
trap 'jobs -p | xargs kill &> /dev/null || true' EXIT
trap shutdown_services ERR
trap shutdown_services EXIT
SCRIPT_NAME=$1
@ -135,7 +135,7 @@ function wait_for_services() {
function shutdown_services() {
echo "Shutting down services"
jobs -p | xargs kill
jobs -p | xargs --no-run-if-empty kill || true
wait
# clean up
@ -151,3 +151,8 @@ function exit_skip() {
echo "$1"
exit 77
}
function exit_error() {
echo "Error: $1"
exit 1
}

View File

@ -13,6 +13,4 @@ wait_for_services
echo "Running wallet"
taler-wallet-cli testing integrationtest -e "$EXCHANGE_URL" -m "$MERCHANT_URL" -b "$BANK_URL"
shutdown_services
exit 0

View File

@ -0,0 +1,26 @@
#!/bin/bash
# Script to check that Uris are properly handled when used a second time
source "common.sh"
setup_config "double-link"
setup_services
launch_services
wait_for_services
WALLET_DB=wallet-double-link.json
echo "Getting pay taler:// Uri"
PAY_URI=$(taler-wallet-cli testing gen-pay-uri -m "$MERCHANT_URL" -k sandbox -a "TESTKUDOS:1" -s "foo" | grep -E -o 'taler://.*')
echo "Trying to pay without balance"
taler-wallet-cli --wallet-db=$WALLET_DB --no-throttle handle-uri --yes "$PAY_URI" 2>&1 | grep -q "insufficient balance" || exit_error "not reporting insufficient balance"
echo "Withdrawing"
taler-wallet-cli --wallet-db=$WALLET_DB --no-throttle testing withdraw -e "$EXCHANGE_URL" -b "$BANK_URL" -a "TESTKUDOS:10" > /dev/null
echo "Trying to pay again, should work this time"
taler-wallet-cli --wallet-db=$WALLET_DB --no-throttle handle-uri --yes "$PAY_URI" > /dev/null
echo "Trying to pay what was paid already should throw error"
taler-wallet-cli --wallet-db=$WALLET_DB --no-throttle handle-uri --yes "$PAY_URI" 2>&1 | grep -q "already paid" || exit_error "not reporting already paid"
echo "Already paid properly detected"
rm $WALLET_DB || true
exit 0

View File

@ -175,7 +175,6 @@ taler-wallet-cli $TIMETRAVEL --wallet-db=$WALLET_DB run-until-done
echo "Bought something with refresh-recouped coin"
shutdown_services
rm -r "$TMP_DIR"
exit 0