#!/bin/sh set -ex \. ../../nvm.sh TEST_NODE_VERSION="v0.10.29" TEST_COUNT=0 TEST_PASSED=0 TEST_FAILED=0 registerExpectedSymlink() { registerResult ${1} } registerExpectedNoSymlink() { [ $1 -ne 0 ] registerResult $? } registerResult() { result="${1}" TEST_COUNT=$(($TEST_COUNT + 1)) [ ${result} -eq 0 ] \ && TEST_PASSED=$(($TEST_PASSED + 1)) \ || TEST_FAILED=$(($TEST_FAILED + 1)) } cleanup() { rm -rf "${NVM_DIR}/${TEST_NODE_VERSION}" rm -f "${NVM_DIR}/current" } runNvmUse() { mkdir "${NVM_DIR}/${TEST_NODE_VERSION}" nvm use --delete-prefix "${TEST_NODE_VERSION}" > /dev/null 2>&1 rmdir "${NVM_DIR}/${TEST_NODE_VERSION}" } isCurrentSymlinkPresent() { [ -L "${NVM_DIR}/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