Jordan Harband | ecbd7d4 | 2016-07-07 00:00:59 -0700 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | set -ex |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 4 | |
Qiangjun Ran | cadbbce | 2016-11-04 13:15:18 +0800 | [diff] [blame^] | 5 | \. ../../nvm.sh |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 6 | |
| 7 | TEST_NODE_VERSION="v0.10.29" |
| 8 | |
| 9 | TEST_COUNT=0 |
| 10 | TEST_PASSED=0 |
| 11 | TEST_FAILED=0 |
| 12 | |
Jordan Harband | ecbd7d4 | 2016-07-07 00:00:59 -0700 | [diff] [blame] | 13 | registerExpectedSymlink() { |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 14 | registerResult ${1} |
| 15 | } |
| 16 | |
Jordan Harband | ecbd7d4 | 2016-07-07 00:00:59 -0700 | [diff] [blame] | 17 | registerExpectedNoSymlink() { |
| 18 | [ $1 -ne 0 ] |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 19 | registerResult $? |
| 20 | } |
| 21 | |
Jordan Harband | ecbd7d4 | 2016-07-07 00:00:59 -0700 | [diff] [blame] | 22 | registerResult() { |
| 23 | result="${1}" |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 24 | |
| 25 | TEST_COUNT=$(($TEST_COUNT + 1)) |
| 26 | |
| 27 | [ ${result} -eq 0 ] \ |
| 28 | && TEST_PASSED=$(($TEST_PASSED + 1)) \ |
| 29 | || TEST_FAILED=$(($TEST_FAILED + 1)) |
| 30 | } |
| 31 | |
Jordan Harband | ecbd7d4 | 2016-07-07 00:00:59 -0700 | [diff] [blame] | 32 | cleanup() { |
| 33 | rm -rf "${NVM_DIR}/${TEST_NODE_VERSION}" |
| 34 | rm -f "${NVM_DIR}/current" |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 35 | } |
| 36 | |
Jordan Harband | ecbd7d4 | 2016-07-07 00:00:59 -0700 | [diff] [blame] | 37 | runNvmUse() { |
| 38 | mkdir "${NVM_DIR}/${TEST_NODE_VERSION}" |
| 39 | nvm use --delete-prefix "${TEST_NODE_VERSION}" > /dev/null 2>&1 |
| 40 | rmdir "${NVM_DIR}/${TEST_NODE_VERSION}" |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 41 | } |
| 42 | |
Jordan Harband | ecbd7d4 | 2016-07-07 00:00:59 -0700 | [diff] [blame] | 43 | isCurrentSymlinkPresent() { |
| 44 | [ -L "${NVM_DIR}/current" ] |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 45 | } |
| 46 | |
| 47 | NVM_SYMLINK_CURRENT=false |
| 48 | cleanup |
| 49 | runNvmUse |
Jordan Harband | ca89cce | 2014-10-14 17:38:42 -0700 | [diff] [blame] | 50 | isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=false!" |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 51 | registerExpectedNoSymlink $? |
| 52 | |
| 53 | NVM_SYMLINK_CURRENT=true |
| 54 | cleanup |
| 55 | runNvmUse |
Jordan Harband | ca89cce | 2014-10-14 17:38:42 -0700 | [diff] [blame] | 56 | isCurrentSymlinkPresent || echo >&2 "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT=true!" |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 57 | registerExpectedSymlink $? |
| 58 | |
| 59 | NVM_SYMLINK_CURRENT=garbagevalue |
| 60 | cleanup |
| 61 | runNvmUse |
Jordan Harband | ca89cce | 2014-10-14 17:38:42 -0700 | [diff] [blame] | 62 | isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT contains a string!" |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 63 | registerExpectedNoSymlink $? |
| 64 | |
| 65 | NVM_SYMLINK_CURRENT=0 |
| 66 | cleanup |
| 67 | runNvmUse |
Jordan Harband | ca89cce | 2014-10-14 17:38:42 -0700 | [diff] [blame] | 68 | isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=0!" |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 69 | registerExpectedNoSymlink $? |
| 70 | |
| 71 | NVM_SYMLINK_CURRENT=1 |
| 72 | cleanup |
| 73 | runNvmUse |
Jordan Harband | ca89cce | 2014-10-14 17:38:42 -0700 | [diff] [blame] | 74 | isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=1!" |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 75 | registerExpectedNoSymlink $? |
| 76 | |
| 77 | unset NVM_SYMLINK_CURRENT |
| 78 | cleanup |
| 79 | runNvmUse |
Jordan Harband | ca89cce | 2014-10-14 17:38:42 -0700 | [diff] [blame] | 80 | isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT has been unset (default behaviour)!" |
| 81 | registerExpectedNoSymlink $? |
stelcheck | 9306a9b | 2014-08-29 14:57:30 +0900 | [diff] [blame] | 82 | |
| 83 | cleanup |
| 84 | |
Jordan Harband | ecbd7d4 | 2016-07-07 00:00:59 -0700 | [diff] [blame] | 85 | [ $TEST_FAILED -ne 0 ] && echo "${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" && exit 1 || true |