MovieMapper/run-tests.sh
Jarian Cottingham 68eb4d9f43 feat: Add Rust UI and backend implementation with project infrastructure
Adds the new Rust-based UI (iced), backend service, shared Swift models,
CI/CD workflows, build scripts, and project documentation.
2026-08-19 21:22:08 -05:00

86 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# run-tests.sh - Run all tests (unit + UI)
# Usage: ./run-tests.sh [unit|ui|all]
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$SCRIPT_DIR/MovieMapper-iOS"
# Default test type
TEST_TYPE="${1:-all}"
# Load environment variables
if [[ -f "$SCRIPT_DIR/.env" ]]; then
export TVDB_API_KEY=$(grep "^TVDB_API_KEY=" "$SCRIPT_DIR/.env" | cut -d'=' -f2)
echo "✓ Loaded TVDB_API_KEY from .env"
else
echo "⚠ .env file not found, TVDB_API_KEY may not be set"
fi
# Create test results directory
RESULTS_DIR="$SCRIPT_DIR/test-results"
mkdir -p "$RESULTS_DIR"
echo "=== MovieMapper iOS Test Runner ==="
echo "Test Type: $TEST_TYPE"
echo "Results Directory: $RESULTS_DIR"
echo ""
cd "$PROJECT_DIR"
if [[ "$TEST_TYPE" == "unit" || "$TEST_TYPE" == "all" ]]; then
echo "=== Running Unit Tests ==="
if [[ "$TEST_TYPE" == "unit" ]]; then
swift test
else
swift test 2>&1 | tee "$RESULTS_DIR/unit-test.log"
fi
echo "✓ Unit tests completed"
echo ""
fi
if [[ "$TEST_TYPE" == "ui" || "$TEST_TYPE" == "all" ]]; then
echo "=== Running UI Tests ==="
SCHEME="MovieMapper-iOS"
xcodebuild test -project "$PROJECT_DIR" \
-scheme "$SCHEME" \
-destination 'platform=iOS Simulator,name=iPad Pro (12.9-inch) (17th generation)' \
-destination-timeout 60 \
-testSummaryReport "$RESULTS_DIR/ui-test.xml" \
-quiet 2>&1 | tee "$RESULTS_DIR/ui-test.log"
echo "✓ UI tests completed"
echo ""
fi
# Generate test summary report
echo "=== Test Summary Report ==="
echo "Generated at: $(date)"
echo ""
if [[ -f "$RESULTS_DIR/unit-test.log" ]]; then
UNIT_PASSED=$(grep -c "Test Passed" "$RESULTS_DIR/unit-test.log" 2>/dev/null || echo 0)
UNIT_FAILED=$(grep -c "Test Failed" "$RESULTS_DIR/unit-test.log" 2>/dev/null || echo 0)
echo "Unit Tests:"
echo " Passed: $UNIT_PASSED"
echo " Failed: $UNIT_FAILED"
echo ""
fi
if [[ -f "$RESULTS_DIR/ui-test.log" ]]; then
UI_PASSED=$(grep -c "Test Passed" "$RESULTS_DIR/ui-test.log" 2>/dev/null || echo 0)
UI_FAILED=$(grep -c "Test Failed" "$RESULTS_DIR/ui-test.log" 2>/dev/null || echo 0)
echo "UI Tests:"
echo " Passed: $UI_PASSED"
echo " Failed: $UI_FAILED"
echo ""
fi
echo "✓ All tests completed"
echo ""
echo "Test results saved to: $RESULTS_DIR"