#!/usr/bin/env bats load helpers/setup COMMON_SCRIPT="$BATS_TEST_DIRNAME/../scripts/darktable_common.sh" @test "check_dependency schlaegt fehl wenn Tool fehlt" { run bash -c "source '$COMMON_SCRIPT'; check_dependency nicht_existierendes_tool" [ "$status" -eq 1 ] [[ "$output" == *"nicht_existierendes_tool"* ]] [[ "$output" == *"sudo apt install"* ]] } @test "check_dependency besteht wenn Tool vorhanden" { run bash -c "source '$COMMON_SCRIPT'; check_dependency bash" [ "$status" -eq 0 ] } @test "load_config schlaegt fehl wenn .env fehlt" { rm -f "$CONFIG_DIR/.env" run bash -c "source '$COMMON_SCRIPT'; load_config" [ "$status" -eq 1 ] [[ "$output" == *"nicht gefunden"* ]] } @test "load_config laedt .env erfolgreich" { create_valid_env run bash -c "source '$COMMON_SCRIPT'; load_config; echo \$SERVER_IP" [ "$status" -eq 0 ] [[ "$output" == *"192.168.1.100"* ]] } @test "validate_config schlaegt fehl wenn Variable leer" { create_valid_env echo "SERVER_IP=" >> "$CONFIG_DIR/.env" run bash -c "source '$COMMON_SCRIPT'; load_config; validate_config" [ "$status" -eq 1 ] [[ "$output" == *"SERVER_IP"* ]] } @test "server_reachable gibt false zurueck wenn SSH fehlschlaegt" { create_valid_env run_with_stubs bash -c " export SSH_STUB_FAIL=1 source '$COMMON_SCRIPT' load_config server_reachable " [ "$status" -eq 1 ] } @test "server_reachable gibt true zurueck wenn SSH erfolgreich" { create_valid_env run_with_stubs bash -c " export SSH_STUB_FAIL=0 source '$COMMON_SCRIPT' load_config server_reachable " [ "$status" -eq 0 ] } @test "ask_user: j-Eingabe gibt Exit 0" { TMP_SCRIPT=$(mktemp) echo "source '$COMMON_SCRIPT'; ask_user 'Titel' 'Frage?'" > "$TMP_SCRIPT" run bash -c "echo 'j' | env PATH='$STUBS_DIR:$PATH' bash '$TMP_SCRIPT'" rm -f "$TMP_SCRIPT" [ "$status" -eq 0 ] } @test "ask_user: n-Eingabe gibt Exit 1" { TMP_SCRIPT=$(mktemp) echo "source '$COMMON_SCRIPT'; ask_user 'Titel' 'Frage?'" > "$TMP_SCRIPT" run bash -c "echo 'n' | env PATH='$STUBS_DIR:$PATH' bash '$TMP_SCRIPT'" rm -f "$TMP_SCRIPT" [ "$status" -eq 1 ] }