Add `nvm_alias` and unit tests.

master
Jordan Harband 2014-09-30 00:23:37 -07:00
parent acfc459bc5
commit 66b214651f
2 changed files with 51 additions and 0 deletions

18
nvm.sh
View File

@ -234,6 +234,24 @@ nvm_binary_available() {
nvm_version_greater_than_or_equal_to "$1" "$FIRST_VERSION_WITH_BINARY"
}
nvm_alias() {
local ALIAS
ALIAS="$1"
if [ -z "$ALIAS" ]; then
echo >&2 'An alias is required.'
return 1
fi
local NVM_ALIAS_PATH
NVM_ALIAS_PATH="$NVM_DIR/alias/$ALIAS"
if [ ! -e "$NVM_ALIAS_PATH" ]; then
echo >&2 'Alias does not exist.'
return 2
fi
cat "$NVM_ALIAS_PATH"
}
nvm_ls_current() {
local NODE_PATH
NODE_PATH="$(which node 2> /dev/null)"

View File

@ -0,0 +1,33 @@
#!/bin/sh
die () { echo $@ ; cleanup ; exit 1; }
cleanup () {
rm -rf ../../../alias/test
}
. ../../../nvm.sh
OUTPUT="$(nvm_alias 2>&1)"
EXPECTED_OUTPUT='An alias is required.'
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias' produced wrong output; got $OUTPUT"
EXIT_CODE="$(nvm_alias >/dev/null 2>&1 ; echo $?)"
[ "_$EXIT_CODE" = "_1" ] || die "'nvm_alias' exited with $EXIT_CODE, expected 1"
rm -rf ../../../alias/nonexistent
OUTPUT="$(nvm_alias nonexistent 2>&1)"
EXPECTED_OUTPUT='Alias does not exist.'
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias nonexistent' produced wrong output; got $OUTPUT"
EXIT_CODE="$(nvm_alias nonexistent >/dev/null 2>&1 ; echo $?)"
[ "_$EXIT_CODE" = "_2" ] || die "'nvm_alias nonexistent' exited with $EXIT_CODE, expected 2"
EXPECTED_OUTPUT="0.10"
nvm alias test "$EXPECTED_OUTPUT" || die "'nvm alias test $EXPECTED_OUTPUT' failed"
OUTPUT="$(nvm_alias test)"
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias test' produced wrong output; got $OUTPUT"
cleanup