#!/bin/bash
+errlog()
+{
+ local lastexit=$?
+ local msg="$1"
+
+ echo "❌ ERROR: $msg"
+ return $lastexit
+}
+
main()
{
echo "⭐ START: backup"
+
+ command -v yq > /dev/null \
+ || errlog "command yq not found" \
+ || return $?
}
+[ "$TESTMODE" == "ON" ] || return 0
main "$@"
\ No newline at end of file
setup() {
bats_load_library 'bats-support'
- bats_load_library 'bats-assert'
+ bats_load_library 'bats-assert'
+ export TESTMODE=ON
+ source src/backup
+}
+
+teardown() {
+ unset TESTMODE
}
@test "backup run success" {
- run src/backup
+ run main
assert_success
}
@test "show start message" {
- run src/backup
+ run main
assert_success
assert_output "⭐ START: backup"
}
+
+@test "failure yq command not found" {
+ command() {
+ return 1
+ }
+
+ run main
+
+ assert_failure
+ assert_line --index 0 "⭐ START: backup"
+ assert_line --index 1 "❌ ERROR: command yq not found"
+}
\ No newline at end of file