Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion bashdep
Original file line number Diff line number Diff line change
Expand Up @@ -369,8 +369,10 @@ function bashdep::_log() {
}

# Internal: print only when verbose mode is on (and silent is off).
# Always returns 0 — "not verbose" is a normal state, not a failure.
function bashdep::_vlog() {
bashdep::is_verbose && bashdep::_log "$@"
if bashdep::is_verbose; then bashdep::_log "$@"; fi
return 0
}

# Internal: return 0 when an existing dependency can be reused.
Expand Down
53 changes: 53 additions & 0 deletions tests/unit/bashdep_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -572,6 +572,59 @@ function test_bashdep_download_url_curl_failure_returns_non_zero() {
assert_general_error
}

function test_bashdep_download_url_returns_zero_on_success() {
# shellcheck disable=SC2016
mock curl 'touch "$4"'
bashdep::download_url "https://example.com/tool" "$TEST_DIR" >/dev/null
assert_successful_code "$?"
}

function test_bashdep_download_url_returns_zero_when_verbose_off() {
# shellcheck disable=SC2016
mock curl 'touch "$4"'
BASHDEP_VERBOSE=false
bashdep::download_url "https://example.com/tool" "$TEST_DIR" >/dev/null
assert_successful_code "$?"
}

function test_bashdep_download_url_returns_zero_when_verbose_on() {
# shellcheck disable=SC2016
mock curl 'touch "$4"'
BASHDEP_VERBOSE=true
bashdep::download_url "https://example.com/tool" "$TEST_DIR" >/dev/null
assert_successful_code "$?"
}

function test_bashdep_install_returns_zero_after_real_download() {
# shellcheck disable=SC2016
mock curl 'touch "$4"'
BASHDEP_DIR="$TEST_DIR"
bashdep::install "https://example.com/a" >/dev/null
assert_successful_code "$?"
}

function test_bashdep_install_from_returns_zero_after_real_download() {
local file="$TEST_DIR/.bashdep"
printf 'https://example.com/a\n' > "$file"
# shellcheck disable=SC2016
mock curl 'touch "$4"'
BASHDEP_DIR="$TEST_DIR"
bashdep::install_from "$file" >/dev/null
assert_successful_code "$?"
}

function test_bashdep_vlog_returns_zero_when_verbose_off() {
BASHDEP_VERBOSE=false
bashdep::_vlog hi
assert_successful_code "$?"
}

function test_bashdep_vlog_returns_zero_when_verbose_on() {
BASHDEP_VERBOSE=true
bashdep::_vlog hi >/dev/null
assert_successful_code "$?"
}

function test_bashdep_download_url_writes_lockfile_entry() {
local url="https://example.com/tool"
mock curl "true"
Expand Down
Loading