Files
cline/scripts/test-install.sh
T
AraandSarah Fortune 3472e6068c Standalone CLI Installation (#6689)
* Phase 1 download node binary

* Phase 2 include cli binaries

* Phase 3 add scripts

* Phase 4 bug fix

* Phase 5: adding install script

* Phase 6: pushing github actions

* Phase 7: fixing redundancy

* Phase 7: fixing redundancy

* Temporary commit for workspace stuff

* Fix tests

* Fix tests

* Fix tests

* Fix tests

* Fix tests

* Fix tests

* Fix tests

* Adding JB fixes

* Adding JB fixes

* Adding CLI-JB fixes

* Refactor

* Refactor

* refactor

* Update release-standalone.yml

Remove VSCode packaging env vars from CLI workflow.

---------

Co-authored-by: Sarah Fortune <sarah.fortune@gmail.com>
2025-10-10 17:37:32 -07:00

113 lines
3.0 KiB
Bash
Executable File

#!/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"