| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #!/bin/bash
- # Test script for install.sh
- # This validates the install script without actually running it
- set -e
- echo "Testing install.sh script..."
- echo ""
- # Test 1: Script syntax
- echo "Test 1: Script Syntax Verification"
- if bash -n scripts/install.sh; then
- echo " ✅ PASS: Script syntax is valid"
- else
- echo " ❌ FAIL: Script has syntax errors"
- exit 1
- fi
- echo ""
- # Test 2: Check for required functions
- echo "Test 2: Required Functions Check"
- required_functions=(
- "detect_platform"
- "print_message"
- "error_exit"
- "command_exists"
- "check_prerequisites"
- "get_download_url"
- "install_cline"
- "configure_path"
- "verify_installation"
- "print_success"
- "main"
- )
- for func in "${required_functions[@]}"; do
- if grep -q "^$func()" scripts/install.sh || grep -q "^${func} ()" scripts/install.sh; then
- echo " ✅ PASS: Function '$func' exists"
- else
- echo " ❌ FAIL: Function '$func' not found"
- exit 1
- fi
- done
- echo ""
- # Test 3: Check for required variables
- echo "Test 3: Required Variables Check"
- required_vars=(
- "INSTALL_DIR"
- "GITHUB_REPO"
- "RELEASE_TAG"
- )
- for var in "${required_vars[@]}"; do
- if grep -q "$var=" scripts/install.sh; then
- echo " ✅ PASS: Variable '$var' is defined"
- else
- echo " ❌ FAIL: Variable '$var' not found"
- exit 1
- fi
- done
- echo ""
- # Test 4: Check for platform support
- echo "Test 4: Platform Support Check"
- platforms=("darwin-x64" "darwin-arm64" "linux-x64")
- for platform in "${platforms[@]}"; do
- if grep -q "$platform" scripts/install.sh; then
- echo " ✅ PASS: Platform '$platform' supported"
- else
- echo " ❌ FAIL: Platform '$platform' not found"
- exit 1
- fi
- done
- echo ""
- # Test 5: Check for error handling
- echo "Test 5: Error Handling Check"
- if grep -q "error_exit" scripts/install.sh && grep -q "set -e" scripts/install.sh; then
- echo " ✅ PASS: Error handling present"
- else
- echo " ❌ FAIL: Error handling missing"
- exit 1
- fi
- echo ""
- # Test 6: Check for PATH configuration
- echo "Test 6: PATH Configuration Check"
- if grep -q "export PATH=" scripts/install.sh; then
- echo " ✅ PASS: PATH configuration present"
- else
- echo " ❌ FAIL: PATH configuration missing"
- exit 1
- fi
- echo ""
- # Test 7: Check for verification step
- echo "Test 7: Installation Verification Check"
- if grep -q "verify_installation" scripts/install.sh; then
- echo " ✅ PASS: Installation verification present"
- else
- echo " ❌ FAIL: Installation verification missing"
- exit 1
- fi
- echo ""
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo "All tests passed! ✅"
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- echo ""
- echo "The install script is ready for use:"
- echo " curl -fsSL https://raw.githubusercontent.com/cline/cline/main/scripts/install.sh | bash"
|