53 lines
1.6 KiB
Bash
53 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
# Common setup for bats tests
|
|
|
|
# Load bats-support and bats-assert
|
|
# Supports both local lib/ directory and BATS_LIB_PATH for Docker
|
|
_COMMON_SETUP_DIR="${BATS_TEST_DIRNAME}"
|
|
if [[ -d "${_COMMON_SETUP_DIR}/../../lib/bats-support" ]]; then
|
|
load "${_COMMON_SETUP_DIR}/../../lib/bats-support/load.bash"
|
|
load "${_COMMON_SETUP_DIR}/../../lib/bats-assert/load.bash"
|
|
elif [[ -n "${BATS_LIB_PATH}" ]]; then
|
|
load "${BATS_LIB_PATH}/bats-support/load.bash"
|
|
load "${BATS_LIB_PATH}/bats-assert/load.bash"
|
|
else
|
|
echo "Error: Cannot find bats-support/bats-assert libraries" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Environment configuration
|
|
export FLOCI_ENDPOINT="${FLOCI_ENDPOINT:-http://localhost:4566}"
|
|
export AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION:-us-east-1}"
|
|
export AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID:-test}"
|
|
export AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY:-test}"
|
|
|
|
# Helper function to run AWS CLI commands with endpoint
|
|
aws_cmd() {
|
|
aws --endpoint-url "$FLOCI_ENDPOINT" --region "$AWS_DEFAULT_REGION" --output json "$@" 2>&1
|
|
}
|
|
|
|
# Generate unique name for test resources
|
|
unique_name() {
|
|
local prefix="${1:-test}"
|
|
echo "${prefix}-$(date +%s)-$$"
|
|
}
|
|
|
|
# Wait for DynamoDB table to exist
|
|
ddb_wait_table() {
|
|
local table_name="$1"
|
|
aws_cmd dynamodb wait table-exists --table-name "$table_name" >/dev/null 2>&1 || true
|
|
}
|
|
|
|
# Extract JSON value using jq
|
|
json_get() {
|
|
local json="$1"
|
|
local path="$2"
|
|
echo "$json" | jq -r "$path" 2>/dev/null || echo ""
|
|
}
|
|
|
|
# Check if operation is unsupported
|
|
is_unsupported_operation() {
|
|
local output="$1"
|
|
[[ "$output" == *"(UnsupportedOperation)"* ]] || [[ "$output" == *" is not supported."* ]]
|
|
}
|