mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-29 13:42:58 -05:00
dcca61c0bc
When `rbenv --version` is called, this now happens: 1. It changes into the directory where `libexec/rbenv--version` resides and checks if it's a checkout of the rbenv repo (as opposed to Homebrew checkout or something else). Then it reads the git revision. 2. If that failed, change to `$RBENV_ROOT` directory and repeat step 1.
74 lines
1.5 KiB
Bash
74 lines
1.5 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load test_helper
|
|
|
|
setup() {
|
|
mkdir -p "$HOME"
|
|
git config --global user.name "Tester"
|
|
git config --global user.email "tester@test.local"
|
|
|
|
mkdir -p "${RBENV_TEST_DIR}/bin"
|
|
cat > "${RBENV_TEST_DIR}/bin/git" <<CMD
|
|
#!$BASH
|
|
if [[ \$1 == remote && \$PWD != "\$RBENV_TEST_DIR"/* ]]; then
|
|
echo "not allowed" >&2
|
|
exit 1
|
|
else
|
|
exec $(which git) "\$@"
|
|
fi
|
|
CMD
|
|
chmod +x "${RBENV_TEST_DIR}/bin/git"
|
|
}
|
|
|
|
git_commit() {
|
|
git commit --quiet --allow-empty -m "empty"
|
|
}
|
|
|
|
@test "default version" {
|
|
assert [ ! -e "$RBENV_ROOT" ]
|
|
run rbenv---version
|
|
assert_success
|
|
[[ $output == "rbenv 0."* ]]
|
|
}
|
|
|
|
@test "doesn't read version from non-rbenv repo" {
|
|
mkdir -p "$RBENV_ROOT"
|
|
cd "$RBENV_ROOT"
|
|
git init
|
|
git remote add origin https://github.com/homebrew/homebrew.git
|
|
git_commit
|
|
git tag v1.0
|
|
|
|
cd "$RBENV_TEST_DIR"
|
|
run rbenv---version
|
|
assert_success
|
|
[[ $output == "rbenv 0."* ]]
|
|
}
|
|
|
|
@test "reads version from git repo" {
|
|
mkdir -p "$RBENV_ROOT"
|
|
cd "$RBENV_ROOT"
|
|
git init
|
|
git remote add origin https://github.com/sstephenson/rbenv.git
|
|
git_commit
|
|
git tag v0.4.1
|
|
git_commit
|
|
git_commit
|
|
|
|
cd "$RBENV_TEST_DIR"
|
|
run rbenv---version
|
|
assert_success
|
|
[[ $output == "rbenv 0.4.1-2-g"* ]]
|
|
}
|
|
|
|
@test "prints default version if no tags in git repo" {
|
|
mkdir -p "$RBENV_ROOT"
|
|
cd "$RBENV_ROOT"
|
|
git init
|
|
git remote add origin https://github.com/sstephenson/rbenv.git
|
|
git_commit
|
|
|
|
cd "$RBENV_TEST_DIR"
|
|
run rbenv---version
|
|
[[ $output == "rbenv 0."* ]]
|
|
}
|