only unit tests remain

This commit is contained in:
smikes 2014-12-21 16:03:52 -07:00
parent 0796a2932c
commit 757075dc7d
2 changed files with 98 additions and 802 deletions

View File

@ -10,7 +10,7 @@ test_debug() {
} }
test_implementing() { test_implementing() {
true # set to 'false' to run all tests; set to 'true' to skip implemented tests false # set to 'false' to run all tests; set to 'true' to skip implemented tests
# only used while porting to bats: remove afterward # only used while porting to bats: remove afterward
} }
@ -140,3 +140,85 @@ teardown() {
assert_equal 8 "$status" "Expected exit code 8 (infinite alias loop)" assert_equal 8 "$status" "Expected exit code 8 (infinite alias loop)"
assert_match "$output" 'The alias "foo" leads to an infinite loop. Aborting.' assert_match "$output" 'The alias "foo" leads to an infinite loop. Aborting.'
} }
@test 'Running "nvm use system" should work as expected' {
test_implementing && skip
# NOTE: undocumented assumption of this test is
# that node is installed on the test machine!
# TODO: fix that, by using a mock
nvm_has_system_node() { return 0; }
run nvm use system
assert_equal 0 "$status" "Expect success in using system node"
assert_match "$output" 'Now using system version of node:'
nvm_has_system_node() { return 1; }
run nvm use system
assert_equal 127 "$status" "Expect failure when no system node"
assert_match "$output" 'System version of node not found.'
}
@test 'Running "nvm use x" should create and change the "current" symlink' {
test_implementing && skip
export NVM_SYMLINK_CURRENT=true
mkdir -p v0.10.29
nvm use 0.10.29
rmdir v0.10.29
# TODO make this a proper assert
[ -L current ] # "expected 'current' symlink to be created"
oldLink="$(readlink current)"
assert_equal "$(basename $oldLink)" "v0.10.29" "Expected 'current' to point to v0.10.29 but was $oldLink"
mkdir v0.11.13
nvm use 0.11.13
rmdir v0.11.13
newlink="$(readlink current)"
assert_equal "$(basename $newlink)" "v0.11.13" "Expected 'current' to point to v0.11.13 but was $newLink"
}
@test 'Running "nvm use x" should not create the "current" symlink if $NVM_SYMLINK_CURRENT is false' {
test_implementing && skip
test_symlink_made() {
local arg="$1"
mkdir v0.10.29
if [ "$arg" = "undef" ]
then
unset NVM_SYMLINK_CURRENT
else
NVM_SYMLINK_CURRENT="$arg"
fi
run nvm use 0.10.29
run [ -L current ]
result="$status"
rm -f current
rmdir v0.10.29
return $result
}
test_symlink_made 'true'
! test_symlink_made 'false'
! test_symlink_made 'garbagevalue'
! test_symlink_made 0
! test_symlink_made 1
! test_symlink_made 'undef'
}
@test 'Sourcing nvm.sh should make the nvm command available.' {
nvm
}

View File

@ -1,821 +1,35 @@
#!/usr/bin/env bats #!/usr/bin/env bats
load test_helper
NVM_SRC_DIR="${BATS_TEST_DIRNAME}/../.." NVM_SRC_DIR="${BATS_TEST_DIRNAME}/../.."
load "${NVM_SRC_DIR}/nvm.sh" source "${NVM_SRC_DIR}/nvm.sh"
test_debug() {
false # set to 'true' to get setup/teardown in test stderr
}
test_implementing() {
true # set to 'false' to run all tests; set to 'true' to skip implemented tests
# only used while porting to bats: remove afterward
}
setup() { setup() {
echo 'setup' >&2 test_debug && echo 'setup' >&2
NVM_DIR="${BATS_TMPDIR}" NVM_DIR="${BATS_TMPDIR}"
cd "${NVM_DIR}" cd "${NVM_DIR}"
rm -Rf src alias v* rm -Rf src alias v*
mkdir src alias mkdir src alias
load "${NVM_SRC_DIR}/nvm.sh"
} }
teardown() { teardown() {
echo 'teardown' >&2 test_debug && echo 'teardown' >&2
NVM_DIR="${BATS_TMPDIR}" NVM_DIR="${BATS_TMPDIR}"
cd "${NVM_DIR}" cd "${NVM_DIR}"
rm -Rf src alias v* rm -Rf src alias v*
} }
@test './Aliases/nvm_resolve_alias' {
##!/bin/sh
#
#die () { echo $@ ; exit 1; }
#
#. ../../../nvm.sh
#
#EXIT_CODE=$(nvm_resolve_alias ; echo $?)
#[ $EXIT_CODE = "1" ] || die "nvm_resolve_alias without an argument did not return 1; got $EXIT_CODE"
#
#for i in $(seq 1 10)
# do
# STABLE_ALIAS="$(nvm_resolve_alias test-stable-$i)"
# [ "_$STABLE_ALIAS" = "_v0.0.$i" ] \
# || die "'nvm_resolve_alias test-stable-$i' was not v0.0.$i; got $STABLE_ALIAS"
# UNSTABLE_ALIAS="$(nvm_resolve_alias test-unstable-$i)"
# [ "_$UNSTABLE_ALIAS" = "_v0.1.$i" ] \
# || die "'nvm_resolve_alias test-unstable-$i' was not v0.1.$i; got $UNSTABLE_ALIAS"
#done
#
#EXIT_CODE=$(nvm_resolve_alias nonexistent ; echo $?)
#[ $EXIT_CODE = "2" ] || die "'nvm_resolve_alias nonexistent' did not return 2; got $EXIT_CODE"
#
#STABLE="$(nvm_resolve_alias stable)"
#[ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_alias stable' was not v0.0.10; got $STABLE"
#
#UNSTABLE="$(nvm_resolve_alias unstable)"
#[ "_$UNSTABLE" = "_v0.1.10" ] || die "'nvm_resolve_alias unstable' was not v0.1.10; got $UNSTABLE"
#
}
@test './Aliases/Running "nvm alias <aliasname>" should list but one alias.' {
##!/bin/sh
#
#. ../../../nvm.sh
#[ $(nvm alias test-stable-1 | wc -l) = '2' ]
}
@test './Aliases/Running "nvm alias" lists implicit aliases when they do not exist' {
##!/bin/sh
#
#. ../../../nvm.sh
#
#die () { echo $@ ; exit 1; }
#
#NVM_ALIAS_OUTPUT=$(nvm alias)
#
#EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
#STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)$" \
# || die
#
#EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
#UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)$" \
# || die
#
}
@test './Aliases/Running "nvm alias" lists manual aliases instead of implicit aliases when present' {
##!/bin/sh
#
#. ../../../nvm.sh
#
#die () { echo $@ ; cleanup ; exit 1; }
#cleanup () {
# rm -rf ../../../alias/stable
# rm -rf ../../../alias/unstable
# rm -rf ../../../v0.8.1
# rm -rf ../../../v0.9.1
#}
#
#mkdir ../../../v0.8.1
#mkdir ../../../v0.9.1
#
#EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
#STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
#
#EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
#UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
#
#[ "_$STABLE_VERSION" != "_$UNSTABLE_VERSION" ] \
# || die "stable and unstable versions are the same!"
#
#nvm alias stable "$EXPECTED_UNSTABLE"
#nvm alias unstable "$EXPECTED_STABLE"
#
#NVM_ALIAS_OUTPUT=$(nvm alias)
#
#echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)$" \
# || die "nvm alias did not contain the overridden 'stable' alias"
#
#echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)$" \
# || die "nvm alias did not contain the overridden 'unstable' alias"
#
#cleanup
#
}
@test './Aliases/Running "nvm alias" should list all aliases.' {
##!/bin/sh
#
#. ../../../nvm.sh
#
#die () { echo $@ ; exit 1; }
#
#NVM_ALIAS_OUTPUT=$(nvm alias)
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-1 -> 0.0.1 (-> v0.0.1)$' \
# || die "did not find test-stable-1 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-2 -> 0.0.2 (-> v0.0.2)$' \
# || die "did not find test-stable-2 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-3 -> 0.0.3 (-> v0.0.3)$' \
# || die "did not find test-stable-3 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-4 -> 0.0.4 (-> v0.0.4)$' \
# || die "did not find test-stable-4 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-5 -> 0.0.5 (-> v0.0.5)$' \
# || die "did not find test-stable-5 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-6 -> 0.0.6 (-> v0.0.6)$' \
# || die "did not find test-stable-6 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-7 -> 0.0.7 (-> v0.0.7)$' \
# || die "did not find test-stable-7 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-8 -> 0.0.8 (-> v0.0.8)$' \
# || die "did not find test-stable-8 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-9 -> 0.0.9 (-> v0.0.9)$' \
# || die "did not find test-stable-9 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-10 -> 0.0.10 (-> v0.0.10)$' \
# || die "did not find test-stable-10 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-1 -> 0.1.1 (-> v0.1.1)$' \
# || die "did not find test-unstable-1 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-2 -> 0.1.2 (-> v0.1.2)$' \
# || die "did not find test-unstable-2 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-3 -> 0.1.3 (-> v0.1.3)$' \
# || die "did not find test-unstable-3 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-4 -> 0.1.4 (-> v0.1.4)$' \
# || die "did not find test-unstable-4 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-5 -> 0.1.5 (-> v0.1.5)$' \
# || die "did not find test-unstable-5 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-6 -> 0.1.6 (-> v0.1.6)$' \
# || die "did not find test-unstable-6 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-7 -> 0.1.7 (-> v0.1.7)$' \
# || die "did not find test-unstable-7 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-8 -> 0.1.8 (-> v0.1.8)$' \
# || die "did not find test-unstable-8 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-9 -> 0.1.9 (-> v0.1.9)$' \
# || die "did not find test-unstable-9 alias"
#echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-10 -> 0.1.10 (-> v0.1.10)$' \
# || die "did not find test-unstable-10 alias"
#
}
@test './Aliases/setup' {
##!/bin/sh
#
#for i in $(seq 1 10)
# do
# echo 0.0.$i > ../../../alias/test-stable-$i
# mkdir -p ../../../v0.0.$i
# echo 0.1.$i > ../../../alias/test-unstable-$i
# mkdir -p ../../../v0.1.$i
#done
}
@test './Aliases/teardown' {
##!/bin/sh
#
#for i in $(seq 1 10)
# do
# rm -f "../../../alias/test-stable-$i"
# rm -rf "../../../v0.0.$i"
# rm -f "../../../alias/test-unstable-$i"
# rm -rf "../../../v0.1.$i"
#done
#
#rm -f "../../../alias/stable"
#rm -f "../../../alias/unstable"
#
}
@test './Listing versions/Running "nvm ls 0.0.2" should display only version 0.0.2.' {
##!/bin/sh
#
#mkdir ../../../v0.0.2
#mkdir ../../../v0.0.20
#
#. ../../../nvm.sh
#
#die () { echo $@ ; exit 1; }
#
## The result should contain only the appropriate version numbers.
#
#nvm ls 0.0.2 | grep 'v0.0.2' > /dev/null
#if [ $? -eq 0 ]; then
# echo '"nvm ls 0.0.2" contained v0.0.2'
#fi
#
#nvm ls 0.0.2 | grep 'v0.0.20' > /dev/null
#if [ $? -eq 0 ]; then
# die '"nvm ls 0.0.2" contained v0.0.20'
#fi
#
}
@test './Listing versions/Running "nvm ls 0.2" should display only 0.2.x versions.' {
##!/bin/sh
#
#mkdir ../../../v0.1.3
#mkdir ../../../v0.2.3
#mkdir ../../../v0.20.3
#
#. ../../../nvm.sh
#
#die () { echo $@ ; exit 1; }
#
## The result should contain only the appropriate version numbers.
#
#nvm ls 0.1 | grep 'v0.2.3' > /dev/null
#if [ $? -eq 0 ]; then
# echo '"nvm ls 0.1" contained v0.2.3'
#fi
#
#nvm ls 0.1 | grep 'v0.20.3' > /dev/null
#if [ $? -eq 0 ]; then
# die '"nvm ls 0.1" contained v0.20.3'
#fi
#
#nvm ls 0.1 | grep 'v0.1.3' > /dev/null
#if [ $? -ne 0 ]; then
# die '"nvm ls 0.1" did not contain v0.1.3'
#fi
#
#nvm ls 0.2 | grep 'v0.2.3' > /dev/null
#if [ $? -ne 0 ]; then
# die '"nvm ls 0.2" did not contain v0.2.3'
#fi
#
#nvm ls 0.2 | grep 'v0.20.3' > /dev/null
#if [ $? -eq 0 ]; then
# die '"nvm ls 0.2" contained v0.20.3'
#fi
#
#nvm ls 0.2 | grep 'v0.2.3' > /dev/null
#if [ $? -ne 0 ]; then
# die '"nvm ls 0.2" did not contain v0.2.3'
#fi
}
@test './Listing versions/Running "nvm ls foo" should return a nonzero exit code when not found' {
# #!/bin/sh
#
#. ../../../nvm.sh
#
#nvm ls nonexistent_version
#[ "$?" = "3" ]
#
}
@test './Listing versions/Running "nvm ls node" should return a nonzero exit code when not found' {
# #!/bin/sh
#
#. ../../../nvm.sh
#
#nvm ls node
#[ "$?" = "3" ]
#
}
@test './Listing versions/Running "nvm ls stable" and "nvm ls unstable" should return the appropriate implicit alias' {
# #!/bin/sh
#
#. ../../../nvm.sh
#
#die () { echo $@ ; exit 1; }
#
#mkdir ../../../v0.2.3
#mkdir ../../../v0.3.3
#
#EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
#STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
#
#EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
#UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
#
#nvm ls stable | \grep "$STABLE_VERSION" >/dev/null \
# || die "expected 'nvm ls stable' to give $STABLE_VERSION, got $(nvm ls stable)"
#
#nvm ls unstable | \grep "$UNSTABLE_VERSION" >/dev/null \
# || die "expected 'nvm ls unstable' to give $UNSTABLE_VERSION, got $(nvm ls unstable)"
#
#mkdir ../../../v0.1.2
#nvm alias stable 0.1
#
#nvm ls stable | \grep -v "$STABLE_VERSION" >/dev/null \
# || die "'nvm ls stable' contained $STABLE_VERSION instead of v0.1.2"
#nvm ls stable | \grep v0.1.2 >/dev/null \
# || die "'nvm ls stable' did not contain v0.1.2"
#
}
@test './Listing versions/Running "nvm ls system" should include "system" when appropriate' {
##!/bin/sh
#
#die () { echo $@ ; exit 1; }
#
#. ../../../nvm.sh
#
#mkdir -p ../../../v0.0.1
#mkdir -p ../../../v0.0.3
#mkdir -p ../../../v0.0.9
#mkdir -p ../../../v0.3.1
#mkdir -p ../../../v0.3.3
#mkdir -p ../../../v0.3.9
#
#nvm_has_system_node() { return 0; }
#nvm ls system | grep system 2>&1 > /dev/null
#[ $? -eq 0 ] || die '"nvm ls system" did not contain "system" when system node is present'
#
#nvm_has_system_node() { return 1; }
#nvm ls system | grep system 2>&1 > /dev/null
#[ $? -ne 0 ] || die '"nvm ls system" contained "system" when system node is not present'
#
}
@test './Listing versions/Running "nvm ls" should display all installed versions.' {
##!/bin/sh
#
#. ../../../nvm.sh
#
#mkdir ../../../v0.0.1
#mkdir ../../../v0.0.3
#mkdir ../../../v0.0.9
#mkdir ../../../v0.3.1
#mkdir ../../../v0.3.3
#mkdir ../../../v0.3.9
#
## The result should contain the version numbers.
#nvm ls | grep v0.0.1 &&
#nvm ls | grep v0.0.3 &&
#nvm ls | grep v0.0.9 &&
#nvm ls | grep v0.3.1 &&
#nvm ls | grep v0.3.3 &&
#nvm ls | grep v0.3.9
}
@test './Listing versions/Running "nvm ls" should filter out ".nvm"' {
##!/bin/sh
#
#mkdir ../../../v0.1.3
#mkdir ../../../v0.2.3
#
#. ../../../nvm.sh
#
#[ -z `nvm ls | grep '^ *\.'` ]
## The result should contain only the appropriate version numbers.
}
@test './Listing versions/Running "nvm ls" should filter out "versions"' {
##!/bin/sh
#
#mkdir ../../../v0.1.3
#mkdir ../../../v0.2.3
#mkdir ../../../versions
#
#. ../../../nvm.sh
#
#[ -z "$(nvm ls | \grep 'versions')" ]
## The result should contain only the appropriate version numbers.
#
}
@test './Listing versions/Running "nvm ls" should include "system" when appropriate' {
##!/bin/sh
#
#die () { echo $@ ; exit 1; }
#
#. ../../../nvm.sh
#
#mkdir -p ../../../v0.0.1
#mkdir -p ../../../v0.0.3
#mkdir -p ../../../v0.0.9
#mkdir -p ../../../v0.3.1
#mkdir -p ../../../v0.3.3
#mkdir -p ../../../v0.3.9
#
#nvm_has_system_node() { return 0; }
#nvm ls | grep system 2>&1 > /dev/null
#[ $? -eq 0 ] || die '"nvm ls" did not contain "system" when system node is present'
#
#nvm_has_system_node() { return 1; }
#nvm ls | grep system 2>&1 > /dev/null
#[ $? -ne 0 ] || die '"nvm ls" contained "system" when system node is not present'
#
}
@test './Listing versions/Running "nvm ls" should list versions in the "versions" directory' {
##!/bin/sh
#
#die () { echo $@ ; exit 1; }
#
#mkdir -p ../../../versions/v0.12.1
#mkdir ../../../v0.1.3
#
#. ../../../nvm.sh
#
#nvm ls 0.12 | grep v0.12.1 || die '"nvm ls" did not list a version in the versions/ directory'
#nvm ls 0.1 | grep v0.1.3 || die '"nvm ls" did not list a version not in the versions/ directory'
#
}
@test './Listing versions/Running "nvm ls" with node-like versioning vx.x.x should only list a matched version' {
##!/bin/sh
#
#mkdir ../../../v0.1.2
#
#. ../../../nvm.sh
#
#nvm ls v0.1 | grep v0.1.2 &&
#nvm ls v0.1.2 | grep v0.1.2 &&
#nvm ls v0.1. | grep v0.1.2 &&
#nvm ls v0.1.1 | grep N/A
#
}
@test './Listing versions/teardown' {
#rmdir ../../../v0.0.1 >/dev/null 2>&1
#rmdir ../../../v0.0.2 >/dev/null 2>&1
#rmdir ../../../v0.0.3 >/dev/null 2>&1
#rmdir ../../../v0.0.9 >/dev/null 2>&1
#rmdir ../../../v0.0.20 >/dev/null 2>&1
#rmdir ../../../v0.1.2 >/dev/null 2>&1
#rmdir ../../../v0.1.3 >/dev/null 2>&1
#rmdir ../../../v0.2.3 >/dev/null 2>&1
#rmdir ../../../v0.3.1 >/dev/null 2>&1
#rmdir ../../../v0.3.3 >/dev/null 2>&1
#rmdir ../../../v0.3.9 >/dev/null 2>&1
#rmdir ../../../v0.20.3 >/dev/null 2>&1
#rmdir ../../../versions >/dev/null 2>&1
#unalias nvm_has_system_node >/dev/null 2>&1
#rm -f ../../../alias/stable >/dev/null 2>&1
#rm -f ../../../alias/unstable >/dev/null 2>&1
#
}
@test './Running "nvm alias" should create a file in the alias directory.' {
##!/bin/sh
#
#. ../../nvm.sh
#nvm alias test v0.1.2
#[ "$(cat ../../alias/test)" = "v0.1.2" ]
}
@test './Running "nvm current" should display current nvm environment.' {
##!/bin/sh
#
#die () { echo $@ ; exit 1; }
#
#. ../../nvm.sh
#
#nvm deactivate 2>&1
#
#[ "$(nvm current)" = "system" ] || [ "$(nvm current)" = "none" ] || die '"nvm current" did not report "system" or "none" when deactivated'
#
}
@test './Running "nvm deactivate" should unset the nvm environment variables.' {
##!/bin/sh
#
#mkdir -p ../../v0.2.3
#
#die () { echo $@ ; exit 1; }
#
#[ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2
#
#. ../../nvm.sh
#nvm use v0.2.3 || die "Failed to activate v0.2.3"
#[ `expr "$PATH" : ".*v0.2.3/.*/bin"` != 0 ] || die "PATH not set up properly"
#[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH should not contain (npm root -g)"
## ^ note: NODE_PATH should not contain `npm root -g` since globals should not be requireable
#
#nvm deactivate || die "Failed to deactivate v0.2.3"
#[ `expr "$PATH" : ".*v0.2.3/.*/bin"` = 0 ] || die "PATH not cleaned properly"
#[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH not cleaned properly"
}
@test './Running "nvm install" with "--reinstall-packages-from" requires a valid version' {
##!/bin/sh
#
#die () { echo $@ ; cleanup ; exit 1; }
#cleanup () {
# rm -rf ../../v0.10.4
#}
#
#mkdir ../../v0.10.4
#
#. ../../nvm.sh
#
#nvm deactivate >/dev/null 2>&1
#
#INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.11 2>&1)"
#EXPECTED_ERROR_MSG="If --reinstall-packages-from is provided, it must point to an installed version of node."
#[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \
# || die ""nvm install --reinstall-packages-from" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'"
#
#INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.11 >/dev/null 2>&1; echo $?)"
#[ "~$INSTALL_EXIT_CODE" = "~5" ] \
# || die ""nvm install --reinstall-packages-from" should exit with code 5 when given an uninstalled version, got $INSTALL_EXIT_CODE"
#
#INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 2>&1)"
#EXPECTED_ERROR_MSG="You can't reinstall global packages from the same version of node you're installing."
#[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \
# || die ""nvm install --reinstall-packages-from" should fail when given the same version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'"
#
#INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 >/dev/null 2>&1; echo $?)"
#[ "~$INSTALL_EXIT_CODE" = "~4" ] \
# || die ""nvm install --reinstall-packages-from" should exit with code 4 when given the same version, got $INSTALL_EXIT_CODE"
#
}
@test './Running "nvm install" with an invalid version fails nicely' {
##!/bin/sh
#
#die () { echo $@ ; exit 1; }
#
#. ../../nvm.sh
#[ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message"
#
}
@test './Running "nvm unalias" should remove the alias file.' {
##!/bin/sh
#
#echo v0.1.2 > ../../alias/test
#. ../../nvm.sh
#nvm unalias test
#! [ -e ../../alias/test ]
}
@test './Running "nvm uninstall" should remove the appropriate directory.' {
##!/bin/sh
#
#cd ../..
#mkdir v0.0.1
#mkdir src/node-v0.0.1
#
#. ./nvm.sh
#nvm uninstall v0.0.1
#
#[ ! -d 'v0.0.1' ] && [ ! -d 'src/node-v0.0.1' ]
}
@test './Running "nvm unload" should unset all function and variables.' {
##!/bin/sh
#
#fail () { echo $@ ; exit 1; }
#
#. ../../nvm.sh
#
#type nvm > /dev/null 2>&1 || fail "NVM not loaded"
#
#nvm unload
#
#type nvm > /dev/null 2>&1 && fail "NVM not unloaded" || exit 0
#
}
@test './Running "nvm use foo" where "foo" is circular aborts' {
##!/bin/sh
#
#die () { echo $@ ; cleanup ; exit 1; }
#
#cleanup() {
# rm -rf ../../alias/foo
#}
#
#. ../../nvm.sh
#
#echo 'foo' > ../../alias/foo
#
#OUTPUT="$(nvm use foo 2>&1)"
#EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.'
#[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
# || die "'nvm use foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
#
#EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)"
#[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE"
#
#cleanup;
#
}
@test './Running "nvm use system" should work as expected' {
##!/bin/sh
#
#die () { echo $@ ; exit 1; }
#
#. ../../nvm.sh
#
#nvm_has_system_node() { return 0; }
#[ "$(nvm use system 2>&1 | tail -n1)" = "Now using system version of node: $(node -v)." ] || die "Could not use system version of node"
#
#nvm_has_system_node() { return 1; }
#[ "$(nvm use system 2>&1 | tail -n1)" = "System version of node not found." ] || die "Did not report error, system node not found"
#nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found"
#
}
@test './Running "nvm use x" should create and change the "current" symlink' {
##!/bin/bash
#
#export NVM_SYMLINK_CURRENT=true
#. ../../nvm.sh
#
#rm -rf ../../v0.10.29
#mkdir ../../v0.10.29
#nvm use 0.10.29
#rmdir ../../v0.10.29
#
#if [ ! -L ../../current ];then
# echo "Expected 'current' symlink to be created!"
# exit 1
#fi
#
#oldLink="$(readlink ../../current)"
#
#if [ "$(basename $oldLink)" != 'v0.10.29' ];then
# echo "Expected 'current' to point to v0.10.29 but was $oldLink"
# exit 1
#fi
#
#rm -rf ../../v0.11.13
#mkdir ../../v0.11.13
#nvm use 0.11.13
#rmdir ../../v0.11.13
#
#newLink="$(readlink ../../current)"
#
#if [ "$(basename $newLink)" != 'v0.11.13' ];then
# echo "Expected 'current' to point to v0.11.13 but was $newLink"
# exit 1
#fi
}
@test './Running "nvm use x" should not create the "current" symlink if $NVM_SYMLINK_CURRENT is false' {
##!/bin/bash
#
#. ../../nvm.sh
#
#TEST_NODE_VERSION="v0.10.29"
#
#TEST_COUNT=0
#TEST_PASSED=0
#TEST_FAILED=0
#
#function registerExpectedSymlink() {
# registerResult ${1}
#}
#
#function registerExpectedNoSymlink() {
# [ ${1} -ne 0 ]
# registerResult $?
#}
#
#function registerResult() {
# result=${1}
#
# TEST_COUNT=$(($TEST_COUNT + 1))
#
# [ ${result} -eq 0 ] \
# && TEST_PASSED=$(($TEST_PASSED + 1)) \
# || TEST_FAILED=$(($TEST_FAILED + 1))
#}
#
#function cleanup() {
# rm -rf ../../${TEST_NODE_VERSION}
# rm -f ../../current
#}
#
#function runNvmUse() {
# mkdir ../../${TEST_NODE_VERSION}
# nvm use ${TEST_NODE_VERSION} > /dev/null 2>&1
# rmdir ../../${TEST_NODE_VERSION}
#}
#
#function isCurrentSymlinkPresent() {
# [ -L ../../current ]
#}
#
#NVM_SYMLINK_CURRENT=false
#cleanup
#runNvmUse
#isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=false!"
#registerExpectedNoSymlink $?
#
#NVM_SYMLINK_CURRENT=true
#cleanup
#runNvmUse
#isCurrentSymlinkPresent || echo >&2 "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT=true!"
#registerExpectedSymlink $?
#
#NVM_SYMLINK_CURRENT=garbagevalue
#cleanup
#runNvmUse
#isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT contains a string!"
#registerExpectedNoSymlink $?
#
#NVM_SYMLINK_CURRENT=0
#cleanup
#runNvmUse
#isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=0!"
#registerExpectedNoSymlink $?
#
#NVM_SYMLINK_CURRENT=1
#cleanup
#runNvmUse
#isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=1!"
#registerExpectedNoSymlink $?
#
#unset NVM_SYMLINK_CURRENT
#cleanup
#runNvmUse
#isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT has been unset (default behaviour)!"
#registerExpectedNoSymlink $?
#
#cleanup
#
#[ ${TEST_FAILED} -ne 0 ] && echo "${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" && exit 1 || true
#
}
@test './setup' {
##!/bin/sh
#
#(
# cd ../..
#
# # Back up
#
# type setopt >/dev/null 2>&1 && setopt NULL_GLOB
# type shopt >/dev/null 2>&1 && shopt -s nullglob
# rm -Rf v* src alias
# mkdir src alias
#)
}
@test './setup_dir' {
##!/bin/sh
#
#(
# cd ../..
#
# # Back up
#
# mkdir -p bak
# for SRC in v* src alias; do
# [ -e "$SRC" ] && mv "$SRC" bak
# done
# if [ -d versions ]; then
# mv versions bak
# fi
# true
#)
}
@test './Sourcing nvm.sh should make the nvm command available.' {
##!/bin/sh
#
#. ../../nvm.sh
#nvm
}
@test './teardown' {
##!/bin/sh
#
## Remove temporary files
#(
# cd ../..
#
# type setopt >/dev/null 2>&1 && setopt NULL_GLOB
# type shopt >/dev/null 2>&1 && shopt -s nullglob
# rm -fR v* src alias
#)
}
@test './teardown_dir' {
##!/bin/sh
#
#(
# cd ../..
#
# # Restore
# if [ -d bak ]
# then
# mv bak/* . > /dev/null 2>&1 || sleep 0s
# rmdir bak
# fi
# mkdir -p src alias
#)
}
@test './Unit tests/nvm_alias' { @test './Unit tests/nvm_alias' {
##!/bin/sh ##!/bin/sh
# #