107 lines
2.5 KiB
Bash
107 lines
2.5 KiB
Bash
# shellcheck shell=bats
|
|
|
|
load "${MAIN_BASH_IT_DIR?}/test/test_helper.bash"
|
|
|
|
function local_setup_file() {
|
|
setup_libs "colors" #"theme"
|
|
load "${BASH_IT?}/themes/base.theme.bash"
|
|
}
|
|
|
|
function setup_repo {
|
|
upstream="$(mktemp -d)"
|
|
pushd "$upstream" > /dev/null
|
|
# Create a dummy SVN folder - this will not work with an actual `svn` command,
|
|
# but will be enough to trigger the SVN check in the base theme.
|
|
mkdir .svn
|
|
|
|
echo "$upstream"
|
|
}
|
|
|
|
function setup_svn_path {
|
|
local svn_path="$1"
|
|
|
|
# Make sure that the requested SVN script is available
|
|
assert_file_exist "$svn_path/svn"
|
|
|
|
# Make sure that the requested SVN script is on the path
|
|
export PATH="$svn_path:/usr/bin:/bin:/usr/sbin"
|
|
}
|
|
|
|
@test 'themes base: SVN: detect SVN repo' {
|
|
repo="$(setup_repo)"
|
|
pushd "$repo"
|
|
|
|
setup_svn_path "$BASH_IT/test/fixtures/svn/working"
|
|
|
|
# Init the base theme again so that the working SVN script is detected
|
|
_bash_it_appearance_scm_init
|
|
|
|
scm
|
|
# Make sure that the SVN command is used
|
|
assert_equal "$SCM" "$SCM_SVN"
|
|
}
|
|
|
|
@test 'themes base: SVN: detect SVN repo even from a subfolder' {
|
|
repo="$(setup_repo)"
|
|
pushd "$repo"
|
|
|
|
mkdir foo
|
|
pushd foo
|
|
|
|
setup_svn_path "$BASH_IT/test/fixtures/svn/working"
|
|
|
|
# init the base theme again so that the working SVN script is detected
|
|
_bash_it_appearance_scm_init
|
|
|
|
scm
|
|
# Make sure that the SVN command is used
|
|
assert_equal "$SCM" "$SCM_SVN"
|
|
}
|
|
|
|
@test 'themes base: SVN: no SCM if no .svn folder can be found' {
|
|
repo="$(setup_repo)"
|
|
pushd "$repo"
|
|
|
|
rm -rf .svn
|
|
|
|
setup_svn_path "$BASH_IT/test/fixtures/svn/working"
|
|
|
|
# Init the base theme again so that the working SVN script is detected
|
|
_bash_it_appearance_scm_init
|
|
|
|
scm
|
|
# Make sure that no SVN command is used
|
|
assert_equal "$SCM" "$SCM_NONE"
|
|
}
|
|
|
|
@test 'themes base: SVN: ignore SVN repo when using broken SVN command' {
|
|
repo="$(setup_repo)"
|
|
pushd "$repo"
|
|
|
|
setup_svn_path "$BASH_IT/test/fixtures/svn/broken"
|
|
|
|
# Init the base theme again so that the broken SVN script is detected
|
|
_bash_it_appearance_scm_init
|
|
|
|
scm
|
|
# Make sure that no SVN command is not used
|
|
assert_equal "$SCM" "$SCM_NONE"
|
|
}
|
|
|
|
@test 'themes base: SVN: ignore SVN repo even from a subfolder when using a broken SVN' {
|
|
repo="$(setup_repo)"
|
|
pushd "$repo"
|
|
|
|
mkdir foo
|
|
pushd foo
|
|
|
|
setup_svn_path "$BASH_IT/test/fixtures/svn/broken"
|
|
|
|
# Init the base theme again so that the broken SVN script is detected
|
|
_bash_it_appearance_scm_init
|
|
|
|
scm
|
|
# Make sure that no SVN command is used
|
|
assert_equal "$SCM" "$SCM_NONE"
|
|
}
|