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