mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-08-20 04:23:43 +00:00
Compare commits
10 Commits
607f8af347
...
b0ea2afe05
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b0ea2afe05 | ||
![]() |
da2720a429 | ||
![]() |
9fb9dec710 | ||
![]() |
8066dc8511 | ||
![]() |
59b40b8ae7 | ||
![]() |
ce777fa5cf | ||
![]() |
650b069bb8 | ||
![]() |
5a28180ed6 | ||
![]() |
05feeaa927 | ||
![]() |
e2ff1e7f08 |
1
nvm-exec
1
nvm-exec
@ -7,6 +7,7 @@ unset NVM_CD_FLAGS
|
||||
# shellcheck disable=SC1090,SC1091
|
||||
\. "$DIR/nvm.sh" --no-use
|
||||
|
||||
nvm_rc_version > /dev/null && nvm_ensure_version_installed "$NVM_RC_VERSION";
|
||||
if [ -n "$NODE_VERSION" ]; then
|
||||
nvm use "$NODE_VERSION" > /dev/null || exit 127
|
||||
elif ! nvm use >/dev/null 2>&1; then
|
||||
|
21
nvm.sh
21
nvm.sh
@ -891,6 +891,10 @@ nvm_normalize_lts() {
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [ "${LTS}" != "$(echo "${LTS}" | command tr '[:upper:]' '[:lower:]')" ]; then
|
||||
nvm_err 'LTS names must be lowercase'
|
||||
return 3
|
||||
fi
|
||||
nvm_echo "${LTS}"
|
||||
;;
|
||||
esac
|
||||
@ -1249,7 +1253,9 @@ nvm_alias() {
|
||||
nvm_err 'An alias is required.'
|
||||
return 1
|
||||
fi
|
||||
ALIAS="$(nvm_normalize_lts "${ALIAS}")"
|
||||
if ! ALIAS="$(nvm_normalize_lts "${ALIAS}")"; then
|
||||
return $?
|
||||
fi
|
||||
|
||||
if [ -z "${ALIAS}" ]; then
|
||||
return 2
|
||||
@ -1652,7 +1658,9 @@ $VERSION_LIST
|
||||
EOF
|
||||
|
||||
if [ -n "${LTS-}" ]; then
|
||||
LTS="$(nvm_normalize_lts "lts/${LTS}")"
|
||||
if ! LTS="$(nvm_normalize_lts "lts/${LTS}")"; then
|
||||
return $?
|
||||
fi
|
||||
LTS="${LTS#lts/}"
|
||||
fi
|
||||
|
||||
@ -3417,9 +3425,11 @@ nvm() {
|
||||
;;
|
||||
esac
|
||||
|
||||
local EXIT_CODE
|
||||
VERSION="$(NVM_VERSION_ONLY=true NVM_LTS="${LTS-}" nvm_remote_version "${provided_version}")"
|
||||
EXIT_CODE="$?"
|
||||
|
||||
if [ "${VERSION}" = 'N/A' ]; then
|
||||
if [ "${VERSION}" = 'N/A' ] || [ $EXIT_CODE -ne 0 ]; then
|
||||
local LTS_MSG
|
||||
local REMOTE_CMD
|
||||
if [ "${LTS-}" = '*' ]; then
|
||||
@ -3428,6 +3438,10 @@ nvm() {
|
||||
elif [ -n "${LTS-}" ]; then
|
||||
LTS_MSG="(with LTS filter '${LTS}') "
|
||||
REMOTE_CMD="nvm ls-remote --lts=${LTS}"
|
||||
if [ -z "${provided_version}" ]; then
|
||||
nvm_err "Version with LTS filter '${LTS}' not found - try \`${REMOTE_CMD}\` to browse available versions."
|
||||
return 3
|
||||
fi
|
||||
else
|
||||
REMOTE_CMD='nvm ls-remote'
|
||||
fi
|
||||
@ -3492,7 +3506,6 @@ nvm() {
|
||||
FLAVOR="$(nvm_node_prefix)"
|
||||
fi
|
||||
|
||||
local EXIT_CODE
|
||||
EXIT_CODE=0
|
||||
|
||||
if nvm_is_version_installed "${VERSION}"; then
|
||||
|
19
test/fast/Running 'nvm-exec' should display required node version
Executable file
19
test/fast/Running 'nvm-exec' should display required node version
Executable file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -x
|
||||
\. ../../nvm.sh
|
||||
|
||||
NVM_TEST_VERSION=v0.42
|
||||
|
||||
# Write it to nvmrc
|
||||
echo "$NVM_TEST_VERSION" > .nvmrc
|
||||
|
||||
OUTPUT="$(../../nvm-exec 2>&1)";
|
||||
EXPECTED="N/A: version \"${NVM_TEST_VERSION}\" is not yet installed.
|
||||
|
||||
You need to run \`nvm install ${NVM_TEST_VERSION}\` to install and use it.
|
||||
No NODE_VERSION provided; no .nvmrc file found";
|
||||
|
||||
# Skip install, we want to test the error message
|
||||
diff <(echo "${EXPECTED}") <(echo "${OUTPUT}")
|
||||
rm .nvmrc
|
@ -2,7 +2,7 @@
|
||||
|
||||
\. ../../../nvm.sh
|
||||
|
||||
set -e
|
||||
#set -e #nvm use system returns 127 and No system set message
|
||||
|
||||
die () {
|
||||
# echo "$@" ;
|
||||
@ -24,7 +24,7 @@ fi
|
||||
# default system color
|
||||
nvm use system
|
||||
OUTPUT=$(nvm_print_versions system)
|
||||
FORMAT="\033[0;32m-> %12s\033[0m"
|
||||
FORMAT="\033[0;33m%15s\033[0m"
|
||||
VERSION='system'
|
||||
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
||||
|
||||
@ -34,7 +34,7 @@ nvm_ls_current() { echo "current";}
|
||||
|
||||
# default current color
|
||||
OUTPUT=$(nvm_print_versions current)
|
||||
FORMAT="\033[0;32m-> %12s\033[0m"
|
||||
FORMAT="\033[0;32m->%13s\033[0m"
|
||||
VERSION="current"
|
||||
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
||||
|
||||
@ -43,7 +43,7 @@ EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
||||
# custom current color
|
||||
nvm set-colors YCMGR
|
||||
OUTPUT=$(nvm_print_versions current)
|
||||
FORMAT="\033[1;35m-> %12s\033[0m"
|
||||
FORMAT="\033[1;35m->%13s\033[0m"
|
||||
VERSION="current"
|
||||
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
||||
|
||||
|
35
test/fast/Unit tests/nvm install with nonlowercase LTS name
Executable file
35
test/fast/Unit tests/nvm install with nonlowercase LTS name
Executable file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
\. ../../../nvm.sh
|
||||
|
||||
REMOTE="${PWD}/mocks/nvm_ls_remote.txt"
|
||||
REMOTE_IOJS="${PWD}/mocks/nvm_ls_remote_iojs.txt"
|
||||
|
||||
nvm_download() {
|
||||
if [ "$*" = "-L -s $(nvm_get_mirror node std)/index.tab -o -" ]; then
|
||||
cat "${REMOTE}"
|
||||
elif [ "$*" = "-L -s $(nvm_get_mirror iojs)/index.tab -o -" ]; then
|
||||
cat "${REMOTE_IOJS}"
|
||||
else
|
||||
nvm_err "unknown nvm_download call: $*"
|
||||
return 42
|
||||
fi
|
||||
}
|
||||
|
||||
nvm_install_binary() {
|
||||
return 42
|
||||
}
|
||||
nvm_install_source() {
|
||||
return 42
|
||||
}
|
||||
|
||||
ACTUAL="$(nvm install lts/ARGON 2>&1)"
|
||||
EXIT_CODE=$?
|
||||
[ $EXIT_CODE -eq 3 ] || die "Expected exit code of 3, got ${EXIT_CODE}"
|
||||
|
||||
EXPECTED="LTS names must be lowercase
|
||||
Version with LTS filter 'ARGON' not found - try \`nvm ls-remote --lts=ARGON\` to browse available versions."
|
||||
|
||||
[ "${ACTUAL}" = "${EXPECTED}" ] || die "Expected >${EXPECTED}<, got >${ACTUAL}<"
|
@ -1,7 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
die () { echo "$@" ; cleanup ; exit 1; }
|
||||
|
||||
cleanup() {
|
||||
@ -56,6 +54,14 @@ printf '%s\n' "${LTS_LIST}" | while IFS= read -r LTS; do
|
||||
INDEX=$(($INDEX + 1))
|
||||
done
|
||||
|
||||
OUTPUT="$(nvm ls-remote lts/ARGON 2>&1)"
|
||||
EXIT_CODE=$?
|
||||
[ $EXIT_CODE -eq 3 ] || die "nvm ls-remote lts/ARGON did not exit 3, got '${EXIT_CODE}'"
|
||||
|
||||
EXPECTED_OUTPUT="LTS names must be lowercase
|
||||
N/A"
|
||||
[ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] || die "nvm ls-remote lts/ARGON did not output expected error message; got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<"
|
||||
|
||||
REMOTE="${PWD}/mocks/nvm_ls_remote.txt"
|
||||
nvm_ls_remote() {
|
||||
cat "${REMOTE}"
|
||||
|
@ -6,7 +6,7 @@ cleanup () {
|
||||
nvm cache clear
|
||||
nvm deactivate
|
||||
rm -rf ${NVM_DIR}/v*
|
||||
nvm unalias default
|
||||
nvm unalias default || true
|
||||
}
|
||||
|
||||
die () { >&2 echo "$@" ; cleanup ; exit 1; }
|
||||
|
@ -16,6 +16,9 @@ ACTUAL="$(nvm_normalize_lts "lts/*")"
|
||||
EXPECTED='lts/*'
|
||||
[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
|
||||
|
||||
if ACTUAL="$(nvm_normalize_lts lts/ARGON)"; then
|
||||
die "expected failure, got >${ACTUAL}<"
|
||||
fi
|
||||
|
||||
MOCKS_DIR="../Unit tests/mocks"
|
||||
STAR="$(cat "$MOCKS_DIR/lts-star.txt")"
|
||||
|
@ -9,20 +9,20 @@ die () { echo "$@" ; exit 1; }
|
||||
nvm unalias default >/dev/null 2>&1 || die 'unable to unalias default'
|
||||
|
||||
set +ex # needed for stderr
|
||||
OUTPUT="$(nvm install --lts 3 2>&1)"
|
||||
OUTPUT="$(nvm install --lts 0.12 2>&1)"
|
||||
EXIT_CODE="$?"
|
||||
set -ex
|
||||
EXIT_CODE="$(nvm install --lts 3 >/dev/null 2>&1 && echo $? || echo $?)"
|
||||
EXPECTED_OUTPUT="Version '3' (with LTS filter) not found - try \`nvm ls-remote --lts\` to browse available versions."
|
||||
[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts 3\` did not exit with 3, got >${EXIT_CODE}<"
|
||||
EXPECTED_OUTPUT="Version '0.12' (with LTS filter) not found - try \`nvm ls-remote --lts\` to browse available versions."
|
||||
[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts 0.12\` did not exit with 3, got >${EXIT_CODE}<"
|
||||
[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts 3\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<"
|
||||
|
||||
set +ex # needed for stderr
|
||||
OUTPUT="$(nvm install --lts=argon 3 2>&1)"
|
||||
set -ex
|
||||
EXIT_CODE="$(nvm install --lts=argon 3 >/dev/null 2>&1 && echo $? || echo $?)"
|
||||
EXPECTED_OUTPUT="Version '3' (with LTS filter 'argon') not found - try \`nvm ls-remote --lts=argon\` to browse available versions."
|
||||
[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts=argon 3\` did not exit with 3, got >${EXIT_CODE}<"
|
||||
[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts=argon 3\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<"
|
||||
OUTPUT="$(nvm install --lts=argon 0.12 2>&1)"
|
||||
EXIT_CODE="$?"
|
||||
set -x
|
||||
EXPECTED_OUTPUT="Version '0.12' (with LTS filter 'argon') not found - try \`nvm ls-remote --lts=argon\` to browse available versions."
|
||||
[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts=argon 0.12\` did not exit with 3, got >${EXIT_CODE}<"
|
||||
[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts=argon 0.12\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<"
|
||||
|
||||
nvm install --lts 4.2.2 || die 'nvm install --lts 4.2.2 failed'
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user