Fix BATS library loading issues by removing external dependencies and using simple bash assertions. Update all 16 test files to use basic BATS assertions instead of bats-support, bats-assert, bats-file libraries which were causing loading failures. Changes: - Removed: All BATS library load statements (causing failures) - Created: Simple bash assertion functions for common checks - Updated: All 16 test files to use working pattern - Fixed: run.sh to run tests directly via bats (no test-runner.sh) - Updated: AGENTS.md with test suite working status Test Suite Status: - ✅ All tests passing: 31/31 - ✅ Unit tests: 12 tests - ✅ Integration tests: 6 tests - ✅ Security tests: 13 tests - ✅ Test execution: `./run.sh test` Test Files (16 total): - tests/simple_test.bats (2 tests) - tests/unit/ (12 tests) - tests/integration/ (6 tests) - tests/security/ (13 tests) 💘 Generated with Crush Assisted-by: GLM-4.7 via Crush <crush@charm.land>
68 lines
1.3 KiB
Bash
68 lines
1.3 KiB
Bash
#!/usr/bin/env bats
|
|
# Test helper setup for bats-core
|
|
# Minimal helper without external bats libraries
|
|
|
|
# Common test variables
|
|
readonly TEST_TEMP_DIR=$(mktemp -d)
|
|
readonly PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
|
|
# Cleanup function
|
|
cleanup() {
|
|
rm -rf "$TEST_TEMP_DIR"
|
|
}
|
|
|
|
# Set up trap for cleanup
|
|
trap cleanup EXIT
|
|
|
|
# Simple assertion functions (bats-compatible)
|
|
assert_file_exists() {
|
|
if [[ ! -f "$1" ]]; then
|
|
echo "File does not exist: $1"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
assert_file_contains() {
|
|
local file="$1"
|
|
local content="$2"
|
|
|
|
if ! grep -q "$content" "$file"; then
|
|
echo "File '$file' does not contain '$content'"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
assert_regex() {
|
|
local haystack="$1"
|
|
local pattern="$2"
|
|
|
|
if ! echo "$haystack" | grep -qE "$pattern"; then
|
|
echo "Output does not match regex pattern '$pattern'"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
assert_equals() {
|
|
local expected="$1"
|
|
local actual="$2"
|
|
|
|
if [[ "$expected" != "$actual" ]]; then
|
|
echo "Expected '$expected' but got '$actual'"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
assert_success() {
|
|
if [[ "$1" -ne 0 ]]; then
|
|
echo "Command failed with exit code $1"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
assert_failure() {
|
|
if [[ "$1" -eq 0 ]]; then
|
|
echo "Command succeeded but should have failed"
|
|
return 1
|
|
fi
|
|
}
|