90 lines
2.2 KiB
Bash
90 lines
2.2 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
# test_common_functions.bats
|
|
# Tests for the wild-common.sh library functions
|
|
|
|
load 'test_helper'
|
|
|
|
setup() {
|
|
setup_test_project "common-test"
|
|
cd "$TEST_PROJECT_DIR"
|
|
}
|
|
|
|
teardown() {
|
|
teardown_test_project "common-test"
|
|
}
|
|
|
|
@test "find_wc_home from project root" {
|
|
cd "$TEST_PROJECT_DIR"
|
|
WC_HOME_RESULT=$(find_wc_home)
|
|
assert_equal "$WC_HOME_RESULT" "$TEST_PROJECT_DIR"
|
|
}
|
|
|
|
@test "find_wc_home from nested subdirectory" {
|
|
mkdir -p "$TEST_PROJECT_DIR/deep/nested/path"
|
|
cd "$TEST_PROJECT_DIR/deep/nested/path"
|
|
WC_HOME_RESULT=$(find_wc_home)
|
|
assert_equal "$WC_HOME_RESULT" "$TEST_PROJECT_DIR"
|
|
}
|
|
|
|
@test "find_wc_home when no project found" {
|
|
cd /tmp
|
|
run find_wc_home
|
|
assert_failure
|
|
}
|
|
|
|
@test "init_wild_env sets WC_HOME correctly" {
|
|
mkdir -p "$TEST_PROJECT_DIR/deep/nested"
|
|
cd "$TEST_PROJECT_DIR/deep/nested"
|
|
unset WC_HOME
|
|
export WC_ROOT="$PROJECT_ROOT"
|
|
export PATH="$PROJECT_ROOT/bin:$PATH"
|
|
init_wild_env
|
|
assert_equal "$WC_HOME" "$TEST_PROJECT_DIR"
|
|
}
|
|
|
|
@test "init_wild_env sets WC_ROOT correctly" {
|
|
cd "$TEST_PROJECT_DIR"
|
|
unset WC_HOME
|
|
export WC_ROOT="$PROJECT_ROOT"
|
|
export PATH="$PROJECT_ROOT/bin:$PATH"
|
|
init_wild_env
|
|
# WC_ROOT is set (value depends on test execution context)
|
|
assert [ -n "$WC_ROOT" ]
|
|
}
|
|
|
|
@test "check_wild_directory passes when in project" {
|
|
cd "$TEST_PROJECT_DIR"
|
|
run check_wild_directory
|
|
assert_success
|
|
}
|
|
|
|
@test "print functions work correctly" {
|
|
cd "$TEST_PROJECT_DIR"
|
|
run bash -c '
|
|
source "$PROJECT_ROOT/scripts/common.sh"
|
|
print_header "Test Header"
|
|
print_info "Test info message"
|
|
print_warning "Test warning message"
|
|
print_success "Test success message"
|
|
print_error "Test error message"
|
|
'
|
|
assert_success
|
|
assert_output --partial "Test Header"
|
|
assert_output --partial "Test info message"
|
|
}
|
|
|
|
@test "command_exists works for existing command" {
|
|
run command_exists "bash"
|
|
assert_success
|
|
}
|
|
|
|
@test "command_exists fails for nonexistent command" {
|
|
run command_exists "nonexistent-command-xyz"
|
|
assert_failure
|
|
}
|
|
|
|
@test "generate_random_string produces correct length" {
|
|
RANDOM_STR=$(generate_random_string 16)
|
|
assert_equal "${#RANDOM_STR}" "16"
|
|
} |