| #!/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 | |