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