#!/usr/bin/env bash # test-prompts.sh - tests for the interactive prompts and their validation # (MIL-001 task: prompts). Answers are piped to stdin. Sourced by # run-tests.sh. # shellcheck disable=SC2016 # snippet and fixture text is literal on purpose test_prompt_value_asks_again_until_valid() { run_lib $'bad name\n..\nok-name\n' \ 'prompt_value "Repository name" "" is_valid_repo_name "use letters"; echo "[$REPLY]"' assert_status "retries" 0 "$STATUS" assert_eq "valid answer returned" "[ok-name]" "$OUT" assert_contains "told why" "$ERR" "invalid Repository name: use letters" } test_prompt_value_uses_the_default() { run_lib $'\n' \ 'prompt_value "Local directory" "./proj" is_valid_directory "x"; echo "[$REPLY]"' assert_eq "default taken" "[./proj]" "$OUT" } test_prompt_stops_when_input_ends() { run_lib "" 'prompt_value "Repository name" "" is_valid_repo_name "x"