Unit tests for alternate Git program (#30)
This commit is contained in:
parent
0fd3e1559d
commit
25d3123988
1 changed files with 67 additions and 0 deletions
67
test/004_unit_git_program.bats
Normal file
67
test/004_unit_git_program.bats
Normal file
|
@ -0,0 +1,67 @@
|
|||
load common
|
||||
T_YADM_CONFIG=; # populated by load_fixtures
|
||||
load_fixtures
|
||||
status=;output=; # populated by bats run()
|
||||
|
||||
setup() {
|
||||
destroy_tmp
|
||||
make_parents "$T_YADM_CONFIG"
|
||||
}
|
||||
|
||||
teardown() {
|
||||
destroy_tmp
|
||||
}
|
||||
|
||||
function configuration_test() {
|
||||
# shellcheck source=/dev/null
|
||||
YADM_TEST=1 source "$T_YADM"
|
||||
# shellcheck disable=SC2034
|
||||
YADM_CONFIG="$T_YADM_CONFIG"
|
||||
status=0
|
||||
{ output=$( require_git ) && require_git; } || {
|
||||
status=$?
|
||||
true
|
||||
}
|
||||
|
||||
echo -e "STATUS:$status\nGIT_PROGRAM:$GIT_PROGRAM\nOUTPUT:$output"
|
||||
|
||||
}
|
||||
|
||||
@test "Default git program" {
|
||||
echo "
|
||||
Default git program should be 'git'
|
||||
"
|
||||
|
||||
configuration_test
|
||||
|
||||
[ "$status" == 0 ]
|
||||
[ "$GIT_PROGRAM" = "git" ]
|
||||
}
|
||||
|
||||
@test "Override git program (valid program)" {
|
||||
echo "
|
||||
Override git using yadm.git-program
|
||||
Program should be 'cat'
|
||||
"
|
||||
|
||||
git config --file="$T_YADM_CONFIG" "yadm.git-program" "cat"
|
||||
|
||||
configuration_test
|
||||
|
||||
[ "$status" == 0 ]
|
||||
[ "$GIT_PROGRAM" = "cat" ]
|
||||
}
|
||||
|
||||
@test "Override git program (invalid program)" {
|
||||
echo "
|
||||
Override git using yadm.git-program
|
||||
Program should be 'badprogram'
|
||||
"
|
||||
|
||||
git config --file="$T_YADM_CONFIG" "yadm.git-program" "badprogram"
|
||||
|
||||
configuration_test
|
||||
|
||||
[ "$status" == 1 ]
|
||||
[[ "$output" =~ badprogram ]]
|
||||
}
|
Loading…
Reference in a new issue