68 lines
1.8 KiB
Bash
Executable File
68 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
cleanup () {
|
|
unset -f setup cleanup die
|
|
unset _PROFILE
|
|
rm -f .bashrc .bash_profile .zshrc .profile test_profile > /dev/null 2>&1
|
|
}
|
|
die () { echo $@ ; cleanup ; exit 1; }
|
|
|
|
NVM_ENV=testing . ../../install.sh
|
|
|
|
setup () {
|
|
touch .bashrc
|
|
touch .bash_profile
|
|
touch .zshrc
|
|
touch .profile
|
|
touch test_profile
|
|
}
|
|
|
|
#Let's hack $HOME
|
|
HOME="."
|
|
|
|
setup
|
|
|
|
|
|
# $PROFILE points to a valid file, its path must be returned
|
|
PROFILE="test_profile"
|
|
_PROFILE=$(nvm_detect_profile)
|
|
[ "_$_PROFILE" = "_$PROFILE" ] || die "nvm_detect_profile didn't pick \$PROFILE"
|
|
|
|
# $PROFILE doesn't point to a valid file, its path must not be returned
|
|
PROFILE="invalid_profile"
|
|
_PROFILE=$(nvm_detect_profile)
|
|
[ "_$_PROFILE" != "_$PROFILE" ] || die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file"
|
|
|
|
|
|
# Below are tests for when $PROFILE is undefined
|
|
rm test_profile
|
|
unset PROFILE
|
|
|
|
# It should favor .bashrc if file exists
|
|
_PROFILE=$(nvm_detect_profile)
|
|
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || die "nvm_detect_profile should have selected .bashrc"
|
|
|
|
rm .bashrc
|
|
# Otherwise, it should favor .bash_profile if file exists
|
|
_PROFILE=$(nvm_detect_profile)
|
|
[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || die "nvm_detect_profile should have selected .bash_profile"
|
|
|
|
rm .bash_profile
|
|
# Otherwise, it should favor .zshrc if file exists
|
|
_PROFILE=$(nvm_detect_profile)
|
|
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || die "nvm_detect_profile should have selected .zshrc"
|
|
|
|
rm .zshrc
|
|
# Otherwise, it should favor .profile if file exists
|
|
_PROFILE=$(nvm_detect_profile)
|
|
[ "_$_PROFILE" = "_$HOME/.profile" ] || die "nvm_detect_profile should have selected .profile"
|
|
|
|
rm .profile
|
|
# It should be empty if none is found
|
|
_PROFILE=$(nvm_detect_profile)
|
|
[ -z "$_PROFILE" ] || die "nvm_detect_profile should have echo'ed an empty value"
|
|
|
|
|
|
cleanup
|
|
|