summaryrefslogtreecommitdiff
path: root/src/testing/test_merchant_product_creation.sh
blob: cbfdb6c899b551da9025bd19f6b42f80dd87b200 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
# This file is in the public domain.

. initialize_taler_system.sh

echo -n "Configuring merchant instance ..."
STATUS=$(curl -H "Content-Type: application/json" -X POST \
    -H 'Authorization: Bearer secret-token:super_secret' \
    http://localhost:9966/private/instances \
    -d '{"auth":{"method":"external"},"payto_uris":["payto://x-taler-bank/localhost:8082/43"],"id":"default","name":"default","address":{},"jurisdiction":{},"default_max_wire_fee":"TESTKUDOS:1", "default_max_deposit_fee":"TESTKUDOS:1","default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_ms" : 50000},"default_pay_delay":{"d_ms": 60000}}' \
    -w "%{http_code}" -s -o /dev/null)

if [ "$STATUS" != "204" ]
then
    echo 'should respond ok, instance created. got:' $STATUS
    exit 1
fi
echo OK
RANDOM_IMG='data:image/png;base64,abcdefg'

INFINITE_PRODUCT_TEMPLATE='{"product_id":"2","description":"product with id 2 and price :15","price":"TESTKUDOS:15","total_stock":-1,"description_i18n":{},"unit":"","image":"'$RANDOM_IMG'","taxes":[]}'

PRODUCT_DATA=$INFINITE_PRODUCT_TEMPLATE

echo -n "Creating product..."
STATUS=$(curl 'http://localhost:9966/instances/default/private/products' \
    -d "$PRODUCT_DATA" \
    -w "%{http_code}" -s -o /dev/null)

if [ "$STATUS" != "204" ]
then
    echo 'should respond ok, product created. got:' $STATUS
    exit 1
fi
echo OK

PRODUCT_DATA=$(echo $PRODUCT_DATA | jq 'del(.product_id)')
PRODUCT_DATA=$(echo $PRODUCT_DATA | jq '. + {description: "other description"}')

echo -n "Updating product..."
STATUS=$(curl 'http://localhost:9966/instances/default/private/products/2' -X PATCH \
    -d "$PRODUCT_DATA" \
    -w "%{http_code}" -s -o $LAST_RESPONSE)

if [ "$STATUS" != "204" ]
then
    echo 'should respond ok, updating product. got:' $STATUS
    cat $LAST_RESPONSE
    exit 1
fi

STATUS=$(curl 'http://localhost:9966/instances/default/private/products/2' \
    -w "%{http_code}" -s -o $LAST_RESPONSE)

DESCRIPTION=`jq -r .description < $LAST_RESPONSE`

if [ "$DESCRIPTION" != "other description" ]
then
    echo 'should change description. got:' $DESCRIPTION
    cat $LAST_RESPONSE
    exit 1
fi

echo OK

exit 0