- Update test_helper/common.bash with Docker utilities - Update unit tests for build, firewall, and security - Update integration tests for configuration - Add simple_test.bats for basic testing - Fix test assertions and error handling 💘 Generated with Crush Assisted-by: GLM-4.6 via Crush <crush@charm.land>
66 lines
1.5 KiB
Bash
66 lines
1.5 KiB
Bash
#!/usr/bin/env bats
|
|
# Test helper setup for bats-core
|
|
|
|
# Load bats support libraries if available
|
|
if [[ -f "/usr/lib/bats-core/bats-support/load.bash" ]]; then
|
|
bats_load_library "/usr/lib/bats-core/bats-support"
|
|
bats_load_library "/usr/lib/bats-core/bats-assert"
|
|
bats_load_library "/usr/lib/bats-core/bats-file"
|
|
fi
|
|
|
|
# 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
|
|
|
|
# Common helper functions
|
|
create_test_wg_config() {
|
|
local config_file="$1"
|
|
cat > "$config_file" << EOF
|
|
[Interface]
|
|
PrivateKey = testPrivateKey1234567890abcdefghijklmnopqrstuvwxyz
|
|
Address = 10.0.0.2/24
|
|
DNS = 1.1.1.1
|
|
|
|
[Peer]
|
|
PublicKey = testPublicKey1234567890abcdefghijklmnopqrstuvwxyz
|
|
Endpoint = 192.168.1.100:51820
|
|
AllowedIPs = 0.0.0.0/0
|
|
PersistentKeepalive = 25
|
|
EOF
|
|
}
|
|
|
|
# Additional helper functions for missing assertions
|
|
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
|
|
} |