#!/bin/bash # Test script to demonstrate file overwrite protection set -e # Colors for output GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' print_status() { echo -e "${GREEN}[INFO]${NC} $1" } print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } print_header() { echo -e "${BLUE}================================${NC}" echo -e "${BLUE}$1${NC}" echo -e "${BLUE}================================${NC}" } print_header "Testing File Overwrite Protection" echo "This test will demonstrate the file overwrite protection feature." echo "" # Create a test configuration file first print_status "Creating a test configuration file..." mkdir -p wireguard_configs echo "# Test configuration" > wireguard_configs/test_node.conf echo "This is a test file" >> wireguard_configs/test_node.conf print_status "Test file created: wireguard_configs/test_node.conf" echo "" # Test 1: Try to create a configuration with the same name (should prompt for overwrite) print_header "Test 1: Attempting to create configuration with existing name" echo "Now we'll try to create a configuration with the same name 'test_node'" echo "The script should detect the existing file and ask if you want to overwrite it." echo "" # Create test input that will trigger the overwrite prompt cat > /tmp/test_overwrite_input.txt << 'EOF' test_node 10.8.0.5/24 n n n EOF print_status "Running setup script..." echo "When prompted, you can choose:" echo " 'y' to overwrite the existing file" echo " 'n' to cancel the operation" echo "" # Run the setup script ./wireguard_setup.sh < /tmp/test_overwrite_input.txt # Clean up rm -f /tmp/test_overwrite_input.txt print_status "Test completed!" echo "" echo "The script should have:" echo "1. Detected the existing test_node.conf file" echo "2. Asked if you wanted to overwrite it" echo "3. Either overwritten it (if you chose 'y') or cancelled (if you chose 'n')"