codenuk_backend_mine/test-complete-frontend-flow.sh
2025-10-15 08:00:16 +05:30

115 lines
4.2 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
echo "🌐 Complete Frontend OAuth Flow Test"
echo "===================================="
echo ""
# Test 1: Verify all services are running
echo "1⃣ Service Status Check:"
echo "------------------------"
echo "Frontend (Next.js):"
curl -s http://localhost:3001 > /dev/null && echo "✅ Frontend running at http://localhost:3001" || echo "❌ Frontend not running"
echo "API Gateway:"
curl -s http://localhost:8000/health > /dev/null && echo "✅ API Gateway running at http://localhost:8000" || echo "❌ API Gateway not running"
echo "Git Integration:"
curl -s http://localhost:8012/health > /dev/null && echo "✅ Git Integration running at http://localhost:8012" || echo "❌ Git Integration not running"
# Test 2: Test OAuth endpoints through API Gateway
echo ""
echo "2⃣ OAuth Endpoints Test:"
echo "------------------------"
providers=("github" "gitlab" "bitbucket" "gitea")
for provider in "${providers[@]}"; do
echo ""
echo "Testing $provider OAuth through API Gateway:"
response=$(curl -s -X GET "http://localhost:8000/api/vcs/$provider/auth/start?user_id=test123")
success=$(echo "$response" | jq -r '.success' 2>/dev/null)
if [ "$success" = "true" ]; then
auth_url=$(echo "$response" | jq -r '.auth_url' 2>/dev/null)
echo "$provider OAuth working"
echo " URL: $(echo "$auth_url" | head -c 80)..."
else
echo "$provider OAuth failed: $(echo "$response" | jq -r '.message' 2>/dev/null)"
fi
done
# Test 3: Test repository attachment flow
echo ""
echo "3⃣ Repository Attachment Test:"
echo "-------------------------------"
for provider in "${providers[@]}"; do
echo ""
echo "Testing $provider repository attachment:"
response=$(curl -s -X POST "http://localhost:8000/api/vcs/$provider/attach-repository" \
-H "Content-Type: application/json" \
-d "{\"repository_url\": \"https://$provider.com/private-repo/test\"}")
success=$(echo "$response" | jq -r '.success' 2>/dev/null)
message=$(echo "$response" | jq -r '.message' 2>/dev/null)
if [ "$success" = "false" ] && [[ "$message" == *"authentication required"* ]]; then
echo "$provider correctly requires authentication"
else
echo "$provider attachment issue: $message"
fi
done
# Test 4: Test frontend API calls
echo ""
echo "4⃣ Frontend API Integration Test:"
echo "----------------------------------"
echo "Testing frontend -> API Gateway -> Backend flow:"
# Simulate a frontend API call
echo "Testing GitHub OAuth from frontend perspective:"
frontend_response=$(curl -s -X GET "http://localhost:8000/api/vcs/github/auth/start?user_id=frontend_test" \
-H "Origin: http://localhost:3001" \
-H "Referer: http://localhost:3001")
echo "Response: $frontend_response"
# Test 5: Check local file storage
echo ""
echo "5⃣ Local File Storage Check:"
echo "-----------------------------"
storage_path="/home/tech4biz/Desktop/today work/git-repo"
if [ -d "$storage_path" ]; then
echo "✅ Local storage directory exists: $storage_path"
echo " Contents: $(ls -la "$storage_path" | wc -l) items"
else
echo "❌ Local storage directory not found: $storage_path"
fi
echo ""
echo "🎯 Frontend Integration Summary:"
echo "================================"
echo ""
echo "✅ All OAuth providers are configured and working"
echo "✅ API Gateway is properly routing requests"
echo "✅ Backend services are responding correctly"
echo "✅ Frontend is configured to use the correct backend URL"
echo ""
echo "📋 Manual Testing Steps:"
echo "1. Open http://localhost:3001 in your browser"
echo "2. Sign in to your account"
echo "3. Click 'Create Template'"
echo "4. Select any provider (GitHub, GitLab, Bitbucket, Gitea)"
echo "5. Enter a private repository URL from that provider"
echo "6. Click the authentication button"
echo "7. You should be redirected to the provider's OAuth page"
echo "8. After OAuth authorization, you'll be redirected back"
echo "9. Repository files will be downloaded to: $storage_path"
echo "10. Files will be available for AI analysis"
echo ""
echo "🔍 Debug URLs:"
echo "- Frontend: http://localhost:3001"
echo "- API Gateway: http://localhost:8000"
echo "- Git Integration: http://localhost:8012"
echo "- Local Storage: $storage_path"