138 lines
3.6 KiB
Bash
Executable File
138 lines
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Helper script to set up and run E2E test
|
|
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
CYAN='\033[0;36m'
|
|
NC='\033[0m'
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo " E2E TEST SETUP HELPER"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
echo -e "${BLUE}Step 1: Check if server is running...${NC}"
|
|
if curl -s -o /dev/null -w "%{http_code}" http://localhost:3000 | grep -q "200\|404"; then
|
|
echo -e "${GREEN}✓ Server is running on http://localhost:3000${NC}"
|
|
else
|
|
echo -e "${YELLOW}⚠ Server not running. Starting it now...${NC}"
|
|
npm run dev &
|
|
sleep 5
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${BLUE}Step 2: Get your credentials${NC}"
|
|
echo ""
|
|
echo -e "${CYAN}Please follow these steps:${NC}"
|
|
echo ""
|
|
echo "1. Open your browser and go to:"
|
|
echo " ${BLUE}http://localhost:3000${NC}"
|
|
echo ""
|
|
echo "2. Sign in and create/open a project"
|
|
echo ""
|
|
echo "3. Go to AI Chat page"
|
|
echo ""
|
|
echo "4. Open DevTools (F12 or Cmd+Option+I)"
|
|
echo ""
|
|
echo "5. Go to Network tab"
|
|
echo ""
|
|
echo "6. Send any message (e.g., 'test')"
|
|
echo ""
|
|
echo "7. Find the request to '/api/ai/chat'"
|
|
echo ""
|
|
echo "8. Click it → Headers tab"
|
|
echo ""
|
|
echo "9. Copy the 'Authorization' header value"
|
|
echo " (It looks like: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Ij...)"
|
|
echo ""
|
|
echo "10. Copy your project ID from the URL"
|
|
echo " (Format: /workspace/project/{PROJECT_ID}/v_ai_chat)"
|
|
echo ""
|
|
echo ""
|
|
echo -e "${YELLOW}Ready to input your credentials?${NC}"
|
|
read -p "Press Enter when ready..."
|
|
echo ""
|
|
|
|
# Get auth token
|
|
echo -e "${CYAN}Paste your Authorization header (including 'Bearer '):${NC}"
|
|
read -r AUTH_TOKEN
|
|
echo ""
|
|
|
|
# Get project ID
|
|
echo -e "${CYAN}Paste your Project ID:${NC}"
|
|
read -r PROJECT_ID
|
|
echo ""
|
|
|
|
# Validate inputs
|
|
if [ -z "$AUTH_TOKEN" ]; then
|
|
echo -e "${YELLOW}⚠ Auth token is empty. Exiting.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$PROJECT_ID" ]; then
|
|
echo -e "${YELLOW}⚠ Project ID is empty. Exiting.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Save to temporary file for reuse
|
|
cat > .e2e-test-env << EOF
|
|
export AUTH_TOKEN='$AUTH_TOKEN'
|
|
export PROJECT_ID='$PROJECT_ID'
|
|
EOF
|
|
|
|
echo -e "${GREEN}✓ Credentials saved to .e2e-test-env${NC}"
|
|
echo ""
|
|
|
|
# Test connection
|
|
echo -e "${BLUE}Step 3: Testing connection...${NC}"
|
|
response=$(curl -s -X POST "http://localhost:3000/api/ai/chat" \
|
|
-H "Authorization: $AUTH_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"projectId\":\"$PROJECT_ID\",\"message\":\"test\"}")
|
|
|
|
if echo "$response" | jq -e '.reply' > /dev/null 2>&1; then
|
|
echo -e "${GREEN}✓ Connection successful!${NC}"
|
|
reply=$(echo "$response" | jq -r '.reply' | head -c 100)
|
|
echo -e "${CYAN}AI Response:${NC} $reply..."
|
|
echo ""
|
|
elif echo "$response" | jq -e '.error' > /dev/null 2>&1; then
|
|
error=$(echo "$response" | jq -r '.error')
|
|
echo -e "${YELLOW}⚠ API Error: $error${NC}"
|
|
echo "Please check your credentials and try again."
|
|
exit 1
|
|
else
|
|
echo -e "${YELLOW}⚠ Unexpected response${NC}"
|
|
echo "$response"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}=========================================="
|
|
echo " READY TO RUN E2E TEST"
|
|
echo "==========================================${NC}"
|
|
echo ""
|
|
echo "Credentials saved! You can now run:"
|
|
echo ""
|
|
echo -e "${CYAN} source .e2e-test-env${NC}"
|
|
echo -e "${CYAN} ./test-e2e-collector.sh${NC}"
|
|
echo ""
|
|
echo "Or simply:"
|
|
echo ""
|
|
echo -e "${CYAN} AUTH_TOKEN='$AUTH_TOKEN' PROJECT_ID='$PROJECT_ID' ./test-e2e-collector.sh${NC}"
|
|
echo ""
|
|
|
|
# Offer to run now
|
|
echo -e "${YELLOW}Run E2E test now? (y/n)${NC}"
|
|
read -r run_now
|
|
|
|
if [ "$run_now" = "y" ] || [ "$run_now" = "Y" ]; then
|
|
echo ""
|
|
export AUTH_TOKEN
|
|
export PROJECT_ID
|
|
./test-e2e-collector.sh
|
|
fi
|
|
|