Adds basic tests.
This commit is contained in:
63
test/test_helper.bash
Normal file
63
test/test_helper.bash
Normal file
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# test_helper.bash
|
||||
# Common setup and utilities for bats tests
|
||||
|
||||
# Load bats helpers
|
||||
load 'test_helper/bats-support/load'
|
||||
load 'test_helper/bats-assert/load'
|
||||
|
||||
# Test environment variables
|
||||
export TEST_DIR="$(cd "$(dirname "${BATS_TEST_FILENAME}")" && pwd)"
|
||||
export PROJECT_ROOT="$(dirname "$TEST_DIR")"
|
||||
export TMP_DIR="$TEST_DIR/tmp"
|
||||
|
||||
# Set up test environment
|
||||
setup_test_project() {
|
||||
local project_name="${1:-test-project}"
|
||||
|
||||
# Create tmp directory
|
||||
mkdir -p "$TMP_DIR"
|
||||
|
||||
# Create test project
|
||||
export TEST_PROJECT_DIR="$TMP_DIR/$project_name"
|
||||
mkdir -p "$TEST_PROJECT_DIR/.wildcloud"
|
||||
|
||||
# Copy fixture config if it exists
|
||||
if [ -f "$TEST_DIR/fixtures/sample-config.yaml" ]; then
|
||||
cp "$TEST_DIR/fixtures/sample-config.yaml" "$TEST_PROJECT_DIR/config.yaml"
|
||||
fi
|
||||
|
||||
# Source wild-common.sh
|
||||
source "$PROJECT_ROOT/bin/wild-common.sh"
|
||||
}
|
||||
|
||||
# Clean up test environment
|
||||
teardown_test_project() {
|
||||
local project_name="${1:-test-project}"
|
||||
|
||||
if [ -n "$TMP_DIR" ] && [ -d "$TMP_DIR" ]; then
|
||||
rm -rf "$TMP_DIR/$project_name"
|
||||
fi
|
||||
}
|
||||
|
||||
# Create additional test project
|
||||
create_test_project() {
|
||||
local project_name="$1"
|
||||
local project_dir="$TMP_DIR/$project_name"
|
||||
|
||||
mkdir -p "$project_dir/.wildcloud"
|
||||
|
||||
# Copy fixture config if requested
|
||||
if [ $# -gt 1 ] && [ "$2" = "with-config" ]; then
|
||||
cp "$TEST_DIR/fixtures/sample-config.yaml" "$project_dir/config.yaml"
|
||||
fi
|
||||
|
||||
echo "$project_dir"
|
||||
}
|
||||
|
||||
# Remove additional test project
|
||||
remove_test_project() {
|
||||
local project_name="$1"
|
||||
rm -rf "$TMP_DIR/$project_name"
|
||||
}
|
Reference in New Issue
Block a user