accounts/tests/build_test.sh

136 lines
4.0 KiB
Bash
Executable File

#!/bin/bash
# Build Test Script
# Tests the build process for dashboard-fresh, rag-server, and account services
set -e
echo "=================================="
echo "Build Test - Starting"
echo "=================================="
echo ""
# Configuration
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
LOG_FILE="tests/output/build_test_${TIMESTAMP}.log"
RESULTS_FILE="tests/output/build_results_${TIMESTAMP}.json"
# Create output directory
mkdir -p tests/output
# Initialize results
echo "{" > "$RESULTS_FILE"
echo ' "timestamp": "'$TIMESTAMP'",' >> "$RESULTS_FILE"
echo ' "tests": [' >> "$RESULTS_FILE"
# Test counters
TOTAL_TESTS=0
PASSED_TESTS=0
FAILED_TESTS=0
# Function to test build for a service
test_build() {
local service_name=$1
local service_path=$2
local build_command=$3
echo "----------------------------------------"
echo "Testing: $service_name"
echo "----------------------------------------"
echo ""
TOTAL_TESTS=$((TOTAL_TESTS + 1))
if [ -d "$service_path" ]; then
echo "Service directory exists: $service_path"
# Try to build the service
echo "Running build command: $build_command"
if eval "cd $service_path && $build_command" >> "$LOG_FILE" 2>&1; then
echo "✓ Build succeeded for $service_name"
PASSED_TESTS=$((PASSED_TESTS + 1))
# Add to results
if [ $TOTAL_TESTS -gt 1 ]; then
echo "," >> "$RESULTS_FILE"
fi
echo ' {' >> "$RESULTS_FILE"
echo ' "service": "'$service_name'",' >> "$RESULTS_FILE"
echo ' "status": "PASSED",' >> "$RESULTS_FILE"
echo ' "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"' >> "$RESULTS_FILE"
echo -n ' }' >> "$RESULTS_FILE"
else
echo "✗ Build failed for $service_name"
FAILED_TESTS=$((FAILED_TESTS + 1))
# Add to results
if [ $TOTAL_TESTS -gt 1 ]; then
echo "," >> "$RESULTS_FILE"
fi
echo ' {' >> "$RESULTS_FILE"
echo ' "service": "'$service_name'",' >> "$RESULTS_FILE"
echo ' "status": "FAILED",' >> "$RESULTS_FILE"
echo ' "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"' >> "$RESULTS_FILE"
echo -n ' }' >> "$RESULTS_FILE"
fi
else
echo "✗ Service directory not found: $service_path"
FAILED_TESTS=$((FAILED_TESTS + 1))
# Add to results
if [ $TOTAL_TESTS -gt 1 ]; then
echo "," >> "$RESULTS_FILE"
fi
echo ' {' >> "$RESULTS_FILE"
echo ' "service": "'$service_name'",' >> "$RESULTS_FILE"
echo ' "status": "NOT_FOUND",' >> "$RESULTS_FILE"
echo ' "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"' >> "$RESULTS_FILE"
echo -n ' }' >> "$RESULTS_FILE"
fi
echo ""
}
# Test builds for each service
echo "Starting build tests..."
echo ""
# Account service (Go)
test_build "account" "account" "go build -o xcontrol-account ./"
# RAG server (Go)
test_build "rag-server" "rag-server" "go build -o xcontrol-rag-server ./"
# Dashboard fresh (TypeScript/Node.js)
test_build "dashboard-fresh" "dashboard-fresh" "npm run build 2>/dev/null || echo 'Build script not found'"
# Close results JSON
echo "" >> "$RESULTS_FILE"
echo ' ],' >> "$RESULTS_FILE"
echo ' "summary": {' >> "$RESULTS_FILE"
echo ' "total": '$TOTAL_TESTS',' >> "$RESULTS_FILE"
echo ' "passed": '$PASSED_TESTS',' >> "$RESULTS_FILE"
echo ' "failed": '$FAILED_TESTS'' >> "$RESULTS_FILE"
echo ' }' >> "$RESULTS_FILE"
echo "}" >> "$RESULTS_FILE"
# Summary
echo "=================================="
echo "Build Test - Summary"
echo "=================================="
echo "Total tests: $TOTAL_TESTS"
echo "Passed: $PASSED_TESTS"
echo "Failed: $FAILED_TESTS"
echo ""
echo "Detailed log: $LOG_FILE"
echo "Results JSON: $RESULTS_FILE"
echo ""
if [ $FAILED_TESTS -eq 0 ]; then
echo "✓ All build tests passed!"
exit 0
else
echo "✗ Some build tests failed"
exit 1
fi