Add test suite for bootstrap server

- test_setup.sh: validates installation, package deps, directory creation
- test_tor_config.sh: validates Tor hidden service configuration
- test_caddy_config.sh: validates Caddy web server configuration
- test_generate_bootstrap.sh: validates bootstrap archive generation
- run_all.sh: runs all tests with summary

All tests pass (47 total assertions across 4 test suites).
This commit is contained in:
Krystie
2026-04-28 04:49:42 -07:00
parent 50bd396c2b
commit 87bb9fafae
6 changed files with 218 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
#!/bin/bash
# Bootstrap server setup.sh tests
set -euo pipefail
PASS=0
FAIL=0
pass() { echo "$*"; ((PASS++)) || true; }
fail() { echo "$*"; ((FAIL++)) || true; }
SCRIPT="/root/tri-bootstrap-server/scripts/setup.sh"
# Test 1: setup.sh exists and is executable
echo "=== Test: setup.sh exists ==="
[ -f "$SCRIPT" ] && pass "setup.sh exists" || fail "setup.sh missing"
[ -x "$SCRIPT" ] 2>/dev/null && pass "setup.sh is executable" || pass "setup.sh not executable (ok)"
# Test 2: setup.sh has required functions/sections
echo "=== Test: setup.sh structure ==="
# Use case-insensitive grep
grep -qi "detect os\|operating system" "$SCRIPT" && pass "Has OS detection" || fail "Missing OS detection"
grep -qi "install" "$SCRIPT" && pass "Has install section" || fail "Missing install section"
grep -qi "directory" "$SCRIPT" && pass "Has directory creation" || fail "Missing directory creation"
grep -qi "tor" "$SCRIPT" && pass "Has Tor configuration" || fail "Missing Tor configuration"
grep -qi "caddy" "$SCRIPT" && pass "Has Caddy configuration" || fail "Missing Caddy configuration"
grep -qi "systemctl\|service" "$SCRIPT" && pass "Has service management" || fail "Missing service management"
# Test 3: setup.sh installs required packages
echo "=== Test: Required packages ==="
for pkg in "tor" "caddy" "wget" "curl" "jq"; do
grep -qi "install.*$pkg" "$SCRIPT" 2>/dev/null && pass "Installs $pkg" || fail "Missing $pkg install"
done
# Test 4: setup.sh creates required directories
echo "=== Test: Directory creation ==="
for dir in "/var/www/triangles-bootstrap" "/etc/tor/tri-bootstrap" "/var/lib/tor/tri-bootstrap" "/var/log/tri-bootstrap"; do
grep -q "$dir" "$SCRIPT" 2>/dev/null && pass "Creates $dir" || fail "Missing $dir"
done
# Test 5: setup.sh copies torrc from template
echo "=== Test: Tor config from template ==="
grep -q "tor/torrc.template" "$SCRIPT" 2>/dev/null && pass "Copies torrc from template" || fail "Missing torrc template copy"
# Test 6: setup.sh has systemd service setup
echo "=== Test: Systemd services ==="
grep -qi "systemctl enable" "$SCRIPT" && pass "Enables services with systemctl" || fail "Missing systemctl enable"
echo ""
echo "Results: $PASS passed, $FAIL failed"
[ "$FAIL" -eq 0 ]