#!/bin/bash # Test Bot API Endpoints API_BASE_URL="http://localhost:8000" CHAT_ID=556399210 echo "🧪 Finance Bot API Tests" echo "========================" echo "" # Test 1: Register new email user echo "1️⃣ Register with Email" echo "Request: POST /api/v1/auth/register" curl -s -X POST "$API_BASE_URL/api/v1/auth/register" \ -H "Content-Type: application/json" \ -d '{ "email": "test.user@example.com", "password": "TestPassword123", "first_name": "Test", "last_name": "User" }' | jq '.' || echo "Failed" echo "" echo "---" echo "" # Test 2: Get token for Telegram user echo "2️⃣ Get Token for Telegram User" echo "Request: POST /api/v1/auth/token/get" TOKEN_RESPONSE=$(curl -s -X POST "$API_BASE_URL/api/v1/auth/token/get" \ -H "Content-Type: application/json" \ -d "{\"chat_id\": $CHAT_ID}") echo "$TOKEN_RESPONSE" | jq '.' || echo "Failed" # Extract token for next test TOKEN=$(echo "$TOKEN_RESPONSE" | jq -r '.access_token // empty') echo "" echo "---" echo "" # Test 3: Quick Telegram registration echo "3️⃣ Quick Telegram Registration" echo "Request: POST /api/v1/auth/telegram/register" REG_RESPONSE=$(curl -s -X POST "$API_BASE_URL/api/v1/auth/telegram/register" \ -H "Content-Type: application/json" \ -d "" \ -G \ --data-urlencode "chat_id=$CHAT_ID" \ --data-urlencode "username=john_doe" \ --data-urlencode "first_name=John") echo "$REG_RESPONSE" | jq '.' || echo "Failed" # Extract JWT token if registration successful JWT_TOKEN=$(echo "$REG_RESPONSE" | jq -r '.jwt_token // empty') echo "" echo "---" echo "" # Test 4: Health check echo "4️⃣ Health Check" echo "Request: GET /health" curl -s -X GET "$API_BASE_URL/health" | jq '.' || echo "Failed" echo "" echo "---" echo "" # Test 5: Make authenticated request (if we have a token) if [ ! -z "$TOKEN" ]; then echo "5️⃣ Authenticated Request (with token)" echo "Request: GET /api/v1/accounts" echo "Authorization: Bearer $TOKEN" curl -s -X GET "$API_BASE_URL/api/v1/accounts" \ -H "Authorization: Bearer $TOKEN" | jq '.' || echo "Failed" echo "" else echo "5️⃣ Authenticated Request - Skipped (no token)" fi echo "" echo "---" echo "" echo "✅ Tests Complete" echo "" echo "📝 Notes:" echo "- Replace http://localhost:8000 with your API URL" echo "- You need jq installed: sudo apt install jq" echo "- Check logs: docker logs finance_bot_web" echo "- Check Redis: redis-cli get \"chat_id:$CHAT_ID:jwt\""