From 6987fcf955977da4bc8163f98cb98495ea4443cd Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 15 Aug 2026 09:43:54 +0200 Subject: [PATCH] add tests for needed commands --- src/restore | 26 ++++++++++++++++++++++ tests/restore_tests.bats | 48 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/src/restore b/src/restore index 8df979b..c185634 100755 --- a/src/restore +++ b/src/restore @@ -1,7 +1,33 @@ #!/bin/bash +errlog() +{ + local lastexit=$? + local msg="$1" + + echo "❌ ERROR: $msg" + return $lastexit +} + +exists_needed_commands() +{ + command -v yq > /dev/null \ + || errlog "command yq not found" \ + || return $? + command -v jq > /dev/null \ + || errlog "command jq not found" \ + || return $? + command -v rsync > /dev/null \ + || errlog "command rsync not found" \ + || return $? + command -v ssh > /dev/null \ + || errlog "command ssh not found" \ + || return $? +} + main() { + exists_needed_commands || return $? echo "⭐ START: restore" } diff --git a/tests/restore_tests.bats b/tests/restore_tests.bats index c4565aa..72e3e33 100755 --- a/tests/restore_tests.bats +++ b/tests/restore_tests.bats @@ -35,4 +35,52 @@ teardown() { assert_success assert_line --index 0 "⭐ START: restore" +} + +# bats test_tags=backup:start,backup:cmd +@test "failure yq command not found" { + command() { + return 1 + } + + run main + + assert_failure + assert_line --index 0 "❌ ERROR: command yq not found" +} + +# bats test_tags=backup:start,backup:cmd +@test "failure jq command not found" { + command() { + [ "$2" != "jq" ] || return 1 + } + + run main + + assert_failure + assert_line --index 0 "❌ ERROR: command jq not found" +} + +# bats test_tags=backup:start,backup:cmd +@test "failure rsync command not found" { + command() { + [ "$2" != "rsync" ] || return 1 + } + + run main + + assert_failure + assert_line --index 0 "❌ ERROR: command rsync not found" +} + +# bats test_tags=backup:start,backup:cmd +@test "failure ssh command not found" { + command() { + [ "$2" != "ssh" ] || return 1 + } + + run main + + assert_failure + assert_line --index 0 "❌ ERROR: command ssh not found" } \ No newline at end of file -- 2.47.3