mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-10 06:11:51 +00:00

Fixes #2849. Co-authored-by: Martin <maartin00000@gmail.com> Co-authored-by: Jordan Harband <ljharb@gmail.com>
87 lines
1.7 KiB
Bash
87 lines
1.7 KiB
Bash
#!/bin/sh
|
|
\. ../../../nvm.sh
|
|
\. ../../common.sh
|
|
|
|
set -e
|
|
|
|
TEST_VERSION="v0.2.4"
|
|
|
|
if [ -f .nvmrc ]; then mv .nvmrc .nvmrc.orig; fi
|
|
|
|
del_nvmrc () {
|
|
rm -f .nvmrc
|
|
}
|
|
|
|
del_alias () {
|
|
nvm unalias test >/dev/null 2>&1
|
|
}
|
|
|
|
cleanup () {
|
|
del_nvmrc
|
|
del_alias
|
|
nvm cache clear
|
|
nvm deactivate
|
|
nvm unalias default
|
|
rm -rf ${NVM_DIR}/v*
|
|
if [ -f .nvmrc.orig ]; then mv .nvmrc.orig .nvmrc; fi
|
|
unset -f nvm_ls_remote nvm_ls_remote_iojs
|
|
}
|
|
|
|
die () {
|
|
echo "$@"
|
|
cleanup
|
|
exit 1
|
|
}
|
|
|
|
REMOTE="$PWD/mocks/nvm_ls_remote.txt"
|
|
nvm_ls_remote() {
|
|
cat "$REMOTE"
|
|
}
|
|
REMOTE_IOJS="$PWD/mocks/nvm_ls_remote_iojs.txt"
|
|
nvm_ls_remote_iojs() {
|
|
cat "$REMOTE_IOJS"
|
|
}
|
|
|
|
make_fake_node "$TEST_VERSION"
|
|
|
|
test_version () {
|
|
del_nvmrc
|
|
VERSION_STRING=${1-}
|
|
make_fake_node "$VERSION_STRING"
|
|
|
|
nvm_write_nvmrc $VERSION_STRING || die "\`nvm_write_nvmrc ${VERSION_STRING}\` failed"
|
|
OUTPUT="$(cat .nvmrc)"
|
|
|
|
nvm_is_valid_version "$(cat .nvmrc)" \
|
|
|| die "\`nvm install --save ${VERSION_STRING}\`+ \`cat .nvmrc\` outputted invalid version: got '${OUTPUT}'"
|
|
}
|
|
|
|
# 1.
|
|
|
|
test_version "$TEST_VERSION" || die
|
|
|
|
# 2. with an alias
|
|
del_alias
|
|
nvm alias test "$TEST_VERSION"
|
|
test_version test || die
|
|
|
|
# 3. fails with invalid permissions
|
|
del_nvmrc
|
|
touch .nvmrc
|
|
chmod 0 .nvmrc
|
|
nvm_write_nvmrc $TEST_VERSION 2>/dev/null && die "\`nvm_write_nvmrc $TEST_VERSION\` did not fail with invalid permissions"
|
|
del_nvmrc
|
|
|
|
# 4. respects NVM_SILENT=1
|
|
export NVM_SILENT=1
|
|
[ "$(nvm_write_nvmrc $TEST_VERSION)" = "" ] || die "\`nvm_write_nvmrc $TEST_VERSION\` was not silenced by NVM_SILENT=1"
|
|
unset NVM_SILENT
|
|
|
|
# 5. fails with an invalid version number
|
|
TEST_VERSION="not_a_node_version"
|
|
nvm_write_nvmrc $TEST_VERSION 2>/dev/null && die "\`nvm_write_nvmrc $TEST_VERSION\` did not fail"
|
|
|
|
#
|
|
|
|
cleanup
|