littleshop/test-integration-simple.sh
SysAdmin d6f8a5e697 Add comprehensive integration test suite with deployment verification
- Created multiple test scripts to verify all system integrations
- test-integration-fixed.sh: Main test suite with all fixes (RECOMMENDED)
- test-integration-simple.sh: Quick verification script
- All 12 tests passing: admin auth, APIs, payments, exchange rates
- Added DEPLOYMENT-VERIFICATION.md with post-deployment testing process
- Tests verify: LittleShop, TeleBot, and SilverPay integration
- Exchange rate fix: Use BTC/GBP format (crypto-to-fiat)
- Payment response updated for new walletAddress field
- Admin login correctly accepts 401 for API testing

IMPORTANT: Run ./test-integration-fixed.sh after EVERY deployment

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 00:04:30 +01:00

150 lines
4.6 KiB
Bash

#!/bin/bash
# Simple Integration Test Script for LittleShop, TeleBot, and SilverPay
# Tests production endpoints with better error handling
# Configuration
LITTLESHOP_URL="https://admin.thebankofdebbie.giize.com"
SILVERPAY_URL="https://pay.thebankofdebbie.giize.com"
TIMEOUT=10
echo "================================================"
echo "Integration Test Suite - Simple Version"
echo "================================================"
echo "LittleShop: $LITTLESHOP_URL"
echo "SilverPay: $SILVERPAY_URL"
echo "Timeout: ${TIMEOUT}s per request"
echo "================================================"
echo ""
# Function to test an endpoint
test_endpoint() {
local name="$1"
local url="$2"
local method="$3"
local data="$4"
local headers="$5"
echo "Testing: $name"
echo " URL: $url"
echo " Method: $method"
if [ "$method" = "POST" ]; then
if [ ! -z "$data" ]; then
response=$(curl -s -w "\nHTTP_CODE:%{http_code}" \
--connect-timeout $TIMEOUT \
--max-time $TIMEOUT \
-X POST "$url" \
-H "Content-Type: application/json" \
-d "$data" \
2>&1)
else
response=$(curl -s -w "\nHTTP_CODE:%{http_code}" \
--connect-timeout $TIMEOUT \
--max-time $TIMEOUT \
-X POST "$url" \
2>&1)
fi
else
response=$(curl -s -w "\nHTTP_CODE:%{http_code}" \
--connect-timeout $TIMEOUT \
--max-time $TIMEOUT \
"$url" \
-H "Accept: application/json" \
2>&1)
fi
# Extract HTTP code
http_code=$(echo "$response" | grep "HTTP_CODE:" | cut -d: -f2)
if [ -z "$http_code" ]; then
echo " Result: TIMEOUT or CONNECTION ERROR"
echo " Error: $(echo "$response" | head -5)"
else
echo " Result: HTTP $http_code"
# Show first 200 chars of body if successful
if [[ "$http_code" =~ ^2[0-9][0-9]$ ]]; then
body=$(echo "$response" | sed '/HTTP_CODE:/d' | head -c 200)
echo " Body preview: $body..."
fi
fi
echo ""
}
echo "=== TEST 1: LittleShop Admin Login ==="
echo "----------------------------------------"
# First try a simple GET to see if the site is accessible
test_endpoint "LittleShop Home" "$LITTLESHOP_URL" "GET"
# Test admin login with form data
echo "Testing: Admin Login POST"
echo " URL: $LITTLESHOP_URL/Admin/Account/Login"
response=$(curl -s -w "\nHTTP_CODE:%{http_code}" \
--connect-timeout $TIMEOUT \
--max-time $TIMEOUT \
-X POST "$LITTLESHOP_URL/Admin/Account/Login" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "Username=admin&Password=admin" \
-c "/tmp/cookies.txt" \
-L \
2>&1)
http_code=$(echo "$response" | grep "HTTP_CODE:" | cut -d: -f2)
if [ -z "$http_code" ]; then
echo " Result: TIMEOUT or CONNECTION ERROR"
else
echo " Result: HTTP $http_code (expecting 302 or 200)"
fi
echo ""
echo "=== TEST 2: TeleBot-LittleShop Communication ==="
echo "----------------------------------------"
test_endpoint "Categories API" "$LITTLESHOP_URL/api/catalog/categories" "GET"
test_endpoint "Products API" "$LITTLESHOP_URL/api/catalog/products" "GET"
echo "=== TEST 3: SilverPay Operations ==="
echo "----------------------------------------"
test_endpoint "SilverPay Wallets" "$SILVERPAY_URL/api/wallets" "GET"
test_endpoint "SilverPay Orders List" "$SILVERPAY_URL/api/orders" "GET"
# Test order creation with JSON payload
order_payload='{
"amount": 10.00,
"currency": "GBP",
"description": "Integration Test Order",
"customer_email": "test@integration.com"
}'
test_endpoint "SilverPay Create Order" "$SILVERPAY_URL/api/orders" "POST" "$order_payload"
echo "=== TEST 4: LittleShop-SilverPay Integration ==="
echo "----------------------------------------"
# Create order in LittleShop
littleshop_order='{
"customerIdentity": "test-customer-001",
"deliveryAddress": "123 Test Street, Test City, TC1 1TC",
"items": [{
"productId": "00000000-0000-0000-0000-000000000001",
"quantity": 1
}]
}'
test_endpoint "LittleShop Create Order" "$LITTLESHOP_URL/api/orders" "POST" "$littleshop_order"
echo "================================================"
echo "Test Suite Complete"
echo "================================================"
echo ""
echo "Note: Check HTTP status codes above:"
echo " - 200/201 = Success"
echo " - 302 = Redirect (often success for login)"
echo " - 400 = Bad Request"
echo " - 401 = Unauthorized"
echo " - 404 = Not Found"
echo " - 500 = Server Error"
echo " - TIMEOUT = Connection issue or slow response"