Adds basic tests.
This commit is contained in:
86
test/test_common_functions.bats
Normal file
86
test/test_common_functions.bats
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/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 WC_ROOT
|
||||
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 WC_ROOT
|
||||
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/bin/wild-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"
|
||||
}
|
Reference in New Issue
Block a user