Creator Network API Test Script

cgen-02bbe1275e8f4de1aa56d09c6579e636
This commit is contained in:
Builder.io 2025-11-08 01:49:54 +00:00
parent c87e5285ab
commit 7b84326d5e

101
tests/test-creator-api.sh Normal file
View file

@ -0,0 +1,101 @@
#!/bin/bash
# Colors for output
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
BASE_URL="http://localhost:5173"
PASS=0
FAIL=0
echo "🚀 Creator Network API Test Suite"
echo "=================================="
echo ""
# Function to test endpoint
test_endpoint() {
local method=$1
local endpoint=$2
local data=$3
local expected_code=$4
local description=$5
if [ -z "$data" ]; then
response=$(curl -s -w "\n%{http_code}" -X "$method" "$BASE_URL$endpoint" -H "Content-Type: application/json")
else
response=$(curl -s -w "\n%{http_code}" -X "$method" "$BASE_URL$endpoint" -H "Content-Type: application/json" -d "$data")
fi
http_code=$(echo "$response" | tail -n1)
body=$(echo "$response" | head -n-1)
if [ "$http_code" = "$expected_code" ]; then
echo -e "${GREEN}${NC} $method $endpoint ($http_code) - $description"
((PASS++))
else
echo -e "${RED}${NC} $method $endpoint (expected $expected_code, got $http_code) - $description"
echo " Response: $body"
((FAIL++))
fi
}
# Test 1: Health check
echo "Testing API Health..."
test_endpoint "GET" "/api/health" "" "200" "API is healthy"
echo ""
# Test 2: Get creators list
echo "Testing Creators Endpoints..."
test_endpoint "GET" "/api/creators" "" "200" "Get creators list"
test_endpoint "GET" "/api/creators?page=1&limit=10" "" "200" "Get creators with pagination"
test_endpoint "GET" "/api/creators?arm=gameforge" "" "200" "Get creators filtered by arm"
test_endpoint "GET" "/api/creators?search=test" "" "200" "Get creators with search"
test_endpoint "GET" "/api/creators/nonexistent" "" "404" "Get non-existent creator"
echo ""
# Test 3: Create creator (requires valid user_id in auth context)
echo "Testing Creator Creation..."
test_endpoint "POST" "/api/creators" '{"user_id":"test-123","username":"testcreator1","bio":"Test creator","experience_level":"intermediate","primary_arm":"gameforge"}' "201" "Create creator profile"
echo ""
# Test 4: Get opportunities list
echo "Testing Opportunities Endpoints..."
test_endpoint "GET" "/api/opportunities" "" "200" "Get opportunities list"
test_endpoint "GET" "/api/opportunities?page=1&limit=10" "" "200" "Get opportunities with pagination"
test_endpoint "GET" "/api/opportunities?arm=gameforge" "" "200" "Get opportunities filtered by arm"
test_endpoint "GET" "/api/opportunities?sort=oldest" "" "200" "Get opportunities sorted"
test_endpoint "GET" "/api/opportunities/nonexistent" "" "404" "Get non-existent opportunity"
echo ""
# Test 5: Create opportunity (should fail - no creator)
echo "Testing Opportunity Creation..."
test_endpoint "POST" "/api/opportunities" '{"user_id":"no-creator","title":"Test Job","description":"A test job"}' "404" "Create opportunity without creator profile"
echo ""
# Test 6: Get applications
echo "Testing Applications Endpoints..."
test_endpoint "GET" "/api/applications" "" "400" "Get applications without user_id (should fail)"
test_endpoint "GET" "/api/applications?user_id=test-user" "" "404" "Get applications for non-existent user"
echo ""
# Test 7: DevConnect endpoints
echo "Testing DevConnect Endpoints..."
test_endpoint "POST" "/api/devconnect/link" '{"user_id":"no-creator","devconnect_username":"testuser"}' "404" "Link DevConnect without creator profile"
test_endpoint "GET" "/api/devconnect/link" "" "400" "Get DevConnect link without user_id"
test_endpoint "DELETE" "/api/devconnect/link" '{"user_id":"no-user"}' "404" "Unlink DevConnect for non-existent user"
echo ""
# Summary
echo "=================================="
echo -e "Test Results: ${GREEN}$PASS passed${NC}, ${RED}$FAIL failed${NC}"
echo ""
if [ $FAIL -eq 0 ]; then
echo -e "${GREEN}✅ All tests passed!${NC}"
exit 0
else
echo -e "${RED}❌ Some tests failed${NC}"
exit 1
fi