#!/usr/bin/env 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