VIBN Frontend for Coolify deployment
This commit is contained in:
128
scripts/test-endpoints.sh
Executable file
128
scripts/test-endpoints.sh
Executable file
@@ -0,0 +1,128 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Endpoint Health Check Script
|
||||
# Tests all critical API endpoints to ensure they work after refactor
|
||||
|
||||
echo "🧪 Testing Vibn API Endpoints"
|
||||
echo "======================================"
|
||||
echo ""
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Base URL
|
||||
BASE_URL="http://localhost:3000"
|
||||
|
||||
# Test counter
|
||||
TOTAL=0
|
||||
PASSED=0
|
||||
FAILED=0
|
||||
|
||||
# Helper function to test an endpoint
|
||||
test_endpoint() {
|
||||
local METHOD=$1
|
||||
local PATH=$2
|
||||
local EXPECTED_STATUS=$3
|
||||
local DESCRIPTION=$4
|
||||
local AUTH=${5:-""}
|
||||
|
||||
TOTAL=$((TOTAL + 1))
|
||||
|
||||
if [ -z "$AUTH" ]; then
|
||||
STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X $METHOD "$BASE_URL$PATH" 2>/dev/null)
|
||||
else
|
||||
STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X $METHOD -H "Authorization: Bearer $AUTH" "$BASE_URL$PATH" 2>/dev/null)
|
||||
fi
|
||||
|
||||
if [ "$STATUS" == "$EXPECTED_STATUS" ]; then
|
||||
echo -e "${GREEN}✓${NC} $DESCRIPTION"
|
||||
echo " └─ $METHOD $PATH → $STATUS"
|
||||
PASSED=$((PASSED + 1))
|
||||
else
|
||||
echo -e "${RED}✗${NC} $DESCRIPTION"
|
||||
echo " └─ $METHOD $PATH → Expected $EXPECTED_STATUS, got $STATUS"
|
||||
FAILED=$((FAILED + 1))
|
||||
fi
|
||||
}
|
||||
|
||||
echo "1️⃣ Frontend Pages"
|
||||
echo "-----------------------------------"
|
||||
test_endpoint "GET" "/" "200" "Home page"
|
||||
echo ""
|
||||
|
||||
echo "2️⃣ Project APIs (No Auth Required for Testing Structure)"
|
||||
echo "-----------------------------------"
|
||||
test_endpoint "POST" "/api/projects/create" "401" "Create project (should require auth)"
|
||||
test_endpoint "GET" "/api/projects/phase" "405" "Phase endpoint (POST only)"
|
||||
test_endpoint "GET" "/api/debug/first-project" "200" "Debug: First project"
|
||||
echo ""
|
||||
|
||||
echo "3️⃣ Knowledge & Context APIs"
|
||||
echo "-----------------------------------"
|
||||
test_endpoint "POST" "/api/projects/test-project/knowledge/upload-document" "401" "Upload document (should require auth)"
|
||||
test_endpoint "POST" "/api/projects/test-project/knowledge/import-document" "401" "Import document (should require auth)"
|
||||
test_endpoint "POST" "/api/projects/test-project/knowledge/import-ai-chat" "401" "Import AI chat (should require auth)"
|
||||
test_endpoint "POST" "/api/projects/test-project/knowledge/batch-extract" "401" "Batch extract (should require auth)"
|
||||
test_endpoint "GET" "/api/debug/knowledge-items" "200" "Debug: Knowledge items"
|
||||
test_endpoint "GET" "/api/debug/context-sources" "200" "Debug: Context sources"
|
||||
echo ""
|
||||
|
||||
echo "4️⃣ AI Chat APIs"
|
||||
echo "-----------------------------------"
|
||||
test_endpoint "POST" "/api/ai/chat" "401" "AI chat (should require auth)"
|
||||
test_endpoint "GET" "/api/ai/conversation" "400" "Get conversation (requires projectId)"
|
||||
test_endpoint "POST" "/api/ai/conversation/reset" "400" "Reset conversation (requires projectId)"
|
||||
echo ""
|
||||
|
||||
echo "5️⃣ Extraction APIs"
|
||||
echo "-----------------------------------"
|
||||
test_endpoint "POST" "/api/projects/test-project/extract-from-chat" "401" "Extract from chat (should require auth)"
|
||||
test_endpoint "POST" "/api/projects/test-project/aggregate" "401" "Aggregate extractions (should require auth)"
|
||||
echo ""
|
||||
|
||||
echo "6️⃣ GitHub Integration APIs"
|
||||
echo "-----------------------------------"
|
||||
test_endpoint "GET" "/api/github/repos" "401" "Get GitHub repos (should require auth)"
|
||||
test_endpoint "POST" "/api/github/connect" "401" "Connect GitHub (should require auth)"
|
||||
test_endpoint "GET" "/api/github/repo-tree" "400" "Get repo tree (requires params)"
|
||||
test_endpoint "GET" "/api/github/file-content" "400" "Get file content (requires params)"
|
||||
echo ""
|
||||
|
||||
echo "7️⃣ Planning & Vision APIs"
|
||||
echo "-----------------------------------"
|
||||
test_endpoint "POST" "/api/projects/test-project/plan/mvp" "401" "Generate MVP plan (should require auth)"
|
||||
test_endpoint "POST" "/api/projects/test-project/plan/marketing" "401" "Generate marketing plan (should require auth)"
|
||||
test_endpoint "POST" "/api/vision/update" "400" "Update vision (requires projectId)"
|
||||
echo ""
|
||||
|
||||
echo "8️⃣ Utility APIs"
|
||||
echo "-----------------------------------"
|
||||
test_endpoint "POST" "/api/context/summarize" "400" "Summarize context (requires body)"
|
||||
test_endpoint "GET" "/api/debug/env" "200" "Debug: Environment check"
|
||||
test_endpoint "GET" "/api/diagnose" "200" "Diagnose system"
|
||||
echo ""
|
||||
|
||||
echo ""
|
||||
echo "======================================"
|
||||
echo "📊 Test Results"
|
||||
echo "======================================"
|
||||
echo -e "Total: $TOTAL"
|
||||
echo -e "${GREEN}Passed: $PASSED${NC}"
|
||||
echo -e "${RED}Failed: $FAILED${NC}"
|
||||
echo ""
|
||||
|
||||
if [ $FAILED -eq 0 ]; then
|
||||
echo -e "${GREEN}✅ All endpoint structure tests passed!${NC}"
|
||||
echo ""
|
||||
echo "Note: 401/400 responses are EXPECTED for auth-protected and"
|
||||
echo "parameter-required endpoints. This confirms they exist and"
|
||||
echo "are properly configured."
|
||||
exit 0
|
||||
else
|
||||
echo -e "${RED}❌ Some endpoints failed. Check the output above.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user