Skip to content

Commit eae699d

Browse files
committed
Add tests for rbenv install/uninstall hooks
1 parent 4d8319b commit eae699d

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

test/hooks.bats

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/usr/bin/env bats
2+
3+
load test_helper
4+
5+
setup() {
6+
export RBENV_ROOT="${TMP}/rbenv"
7+
export HOOK_PATH="${TMP}/i has hooks"
8+
mkdir -p "$HOOK_PATH"
9+
}
10+
11+
@test "rbenv-install hooks" {
12+
cat > "${HOOK_PATH}/install.bash" <<OUT
13+
before_install 'echo before: \$PREFIX'
14+
after_install 'echo after: \$STATUS'
15+
OUT
16+
stub rbenv-hooks "install : echo '$HOOK_PATH'/install.bash"
17+
stub rbenv-rehash "echo rehashed"
18+
19+
definition="${TMP}/2.0.0"
20+
cat > "$definition" <<<"echo ruby-build"
21+
run rbenv-install "$definition"
22+
23+
assert_success
24+
assert_output <<-OUT
25+
before: ${RBENV_ROOT}/versions/2.0.0
26+
ruby-build
27+
after: 0
28+
rehashed
29+
OUT
30+
}
31+
32+
@test "rbenv-uninstall hooks" {
33+
cat > "${HOOK_PATH}/uninstall.bash" <<OUT
34+
before_uninstall 'echo before: \$PREFIX'
35+
after_uninstall 'echo after.'
36+
rm() {
37+
echo "rm \$@"
38+
command rm "\$@"
39+
}
40+
OUT
41+
stub rbenv-hooks "uninstall : echo '$HOOK_PATH'/uninstall.bash"
42+
stub rbenv-rehash "echo rehashed"
43+
44+
mkdir -p "${RBENV_ROOT}/versions/2.0.0"
45+
run rbenv-uninstall -f 2.0.0
46+
47+
assert_success
48+
assert_output <<-OUT
49+
before: ${RBENV_ROOT}/versions/2.0.0
50+
rm -rf ${RBENV_ROOT}/versions/2.0.0
51+
rehashed
52+
after.
53+
OUT
54+
55+
assert [ ! -d "${RBENV_ROOT}/versions/2.0.0" ]
56+
}

0 commit comments

Comments
 (0)