Files
brain/scripts/tests/common-test.sh
T
Дмитрий 9557109a17 feat(scripts): common.sh helpers (log_*, require_cmd, make_backup_dir)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 00:49:39 +03:00

43 lines
1.3 KiB
Bash

#!/usr/bin/env bash
# Tests for scripts/lib/common.sh
set -u
SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
source "$SCRIPT_DIR/lib/common.sh"
FAILURES=0
assert_eq() {
local expected="$1" actual="$2" name="$3"
if [ "$expected" = "$actual" ]; then
echo "PASS: $name"
else
echo "FAIL: $name (expected '$expected', got '$actual')"
FAILURES=$((FAILURES + 1))
fi
}
# Test 1: log_info writes to stderr
output=$(log_info "test message" 2>&1 1>/dev/null)
case "$output" in
*"test message"*) assert_eq "ok" "ok" "log_info goes to stderr" ;;
*) assert_eq "ok" "fail" "log_info goes to stderr" ;;
esac
# Test 2: require_cmd succeeds for existing command
require_cmd ls >/dev/null 2>&1
assert_eq "0" "$?" "require_cmd ls returns 0"
# Test 3: require_cmd fails for missing command
require_cmd this_command_definitely_does_not_exist_12345 >/dev/null 2>&1
result=$?
[ "$result" -ne 0 ] && assert_eq "0" "0" "require_cmd missing returns non-zero" || assert_eq "0" "1" "require_cmd missing returns non-zero"
# Test 4: make_backup_dir creates dir
tmpdir=$(mktemp -d)
backup=$(make_backup_dir "$tmpdir")
[ -d "$backup" ] && assert_eq "yes" "yes" "make_backup_dir creates directory" || assert_eq "yes" "no" "make_backup_dir creates directory"
rm -rf "$tmpdir"
echo "---"
echo "Failures: $FAILURES"
exit $FAILURES