mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-10-30 17:25:51 +08:00
[New] nvm use/nvm install: add --save option
Fixes #2849. Co-authored-by: Martin <maartin00000@gmail.com> Co-authored-by: Jordan Harband <ljharb@gmail.com>
This commit is contained in:
86
test/fast/Unit tests/nvm_write_nvmrc
Normal file
86
test/fast/Unit tests/nvm_write_nvmrc
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user