Add tests for bootstrap command (#42)
parent
7d3c9e1cb5
commit
3f1a8364ae
@ -0,0 +1,66 @@ |
||||
load common |
||||
T_YADM_BOOTSTRAP=; # populated by load_fixtures |
||||
load_fixtures |
||||
status=; # populated by bats run() |
||||
|
||||
setup() { |
||||
destroy_tmp |
||||
make_parents "$T_YADM_BOOTSTRAP" |
||||
} |
||||
|
||||
teardown() { |
||||
destroy_tmp |
||||
} |
||||
|
||||
function available_test() { |
||||
# shellcheck source=/dev/null |
||||
YADM_TEST=1 source "$T_YADM" |
||||
# shellcheck disable=SC2034 |
||||
YADM_BOOTSTRAP="$T_YADM_BOOTSTRAP" |
||||
status=0 |
||||
{ bootstrap_available; } || { |
||||
status=$? |
||||
true |
||||
} |
||||
|
||||
echo -e "STATUS:$status" |
||||
|
||||
} |
||||
|
||||
@test "Bootstrap missing" { |
||||
echo " |
||||
When bootstrap command is missing |
||||
return 1 |
||||
" |
||||
|
||||
available_test |
||||
[ "$status" == 1 ] |
||||
|
||||
} |
||||
|
||||
@test "Bootstrap not executable" { |
||||
echo " |
||||
When bootstrap command is not executable |
||||
return 1 |
||||
" |
||||
|
||||
touch "$T_YADM_BOOTSTRAP" |
||||
|
||||
available_test |
||||
[ "$status" == 1 ] |
||||
|
||||
} |
||||
|
||||
@test "Bootstrap executable" { |
||||
echo " |
||||
When bootstrap command is not executable |
||||
return 0 |
||||
" |
||||
|
||||
touch "$T_YADM_BOOTSTRAP" |
||||
chmod a+x "$T_YADM_BOOTSTRAP" |
||||
|
||||
available_test |
||||
[ "$status" == 0 ] |
||||
|
||||
} |
@ -0,0 +1,78 @@ |
||||
load common |
||||
load_fixtures |
||||
status=;output=; #; populated by bats run() |
||||
|
||||
setup() { |
||||
destroy_tmp |
||||
build_repo |
||||
} |
||||
|
||||
@test "Command 'bootstrap' (missing file)" { |
||||
echo " |
||||
When 'bootstrap' command is provided, |
||||
and the bootstrap file is missing |
||||
Report error |
||||
Exit with 1 |
||||
" |
||||
|
||||
#; run clone |
||||
run "${T_YADM_Y[@]}" bootstrap |
||||
echo "STATUS:$status" |
||||
echo "OUTPUT:$output" |
||||
|
||||
#; validate status and output |
||||
[[ "$output" =~ Cannot\ execute\ bootstrap ]] |
||||
[ "$status" -eq 1 ] |
||||
|
||||
} |
||||
|
||||
@test "Command 'bootstrap' (not executable)" { |
||||
echo " |
||||
When 'bootstrap' command is provided, |
||||
and the bootstrap file is present |
||||
but is not executable |
||||
Report error |
||||
Exit with 1 |
||||
" |
||||
|
||||
touch "$T_YADM_BOOTSTRAP" |
||||
|
||||
#; run clone |
||||
run "${T_YADM_Y[@]}" bootstrap |
||||
echo "STATUS:$status" |
||||
echo "OUTPUT:$output" |
||||
|
||||
#; validate status and output |
||||
[[ "$output" =~ is\ not\ an\ executable\ program ]] |
||||
[ "$status" -eq 1 ] |
||||
|
||||
} |
||||
|
||||
@test "Command 'bootstrap' (bootstrap run)" { |
||||
echo " |
||||
When 'bootstrap' command is provided, |
||||
and the bootstrap file is present |
||||
and is executable |
||||
Announce the execution |
||||
Execute bootstrap |
||||
Exit with the exit code of bootstrap |
||||
" |
||||
|
||||
{ |
||||
echo "#!/bin/bash" |
||||
echo "echo Bootstrap successful" |
||||
echo "exit 123" |
||||
} > "$T_YADM_BOOTSTRAP" |
||||
chmod a+x "$T_YADM_BOOTSTRAP" |
||||
|
||||
#; run clone |
||||
run "${T_YADM_Y[@]}" bootstrap |
||||
echo "STATUS:$status" |
||||
echo "OUTPUT:$output" |
||||
|
||||
#; validate status and output |
||||
[[ "$output" =~ Executing\ $T_YADM_BOOTSTRAP ]] |
||||
[[ "$output" =~ Bootstrap\ successful ]] |
||||
[ "$status" -eq 123 ] |
||||
|
||||
} |
Loading…
Reference in new issue