mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-10-11 00:00:13 +08:00
63 lines
3.6 KiB
Bash
Executable File
63 lines
3.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
die () { echo "$@" ; exit 1; }
|
|
|
|
: nvm.sh
|
|
\. ../../../nvm.sh
|
|
|
|
nvm_is_valid_version 0.1.2 || die "nvm_is_valid_version 0.1.2 did not return 0"
|
|
nvm_is_valid_version foo && die "nvm_is_valid_version foo did not return 1"
|
|
nvm_is_valid_version iojs-1 || die "nvm_is_valid_version iojs-1 did not return 0"
|
|
nvm_is_valid_version iojs || die "nvm_is_valid_version iojs did not return 0"
|
|
nvm_is_valid_version node || die "nvm_is_valid_version node did not return 0"
|
|
nvm_is_valid_version stable || die "nvm_is_valid_version stable did not return 0"
|
|
nvm_is_valid_version unstable || die "nvm_is_valid_version unstable did not return 0"
|
|
|
|
nvm_is_valid_version 123.js && die "nvm_is_valid_version 123.js did not return 1"
|
|
nvm_is_valid_version v123.js && die "nvm_is_valid_version v123.js did not return 1"
|
|
nvm_is_valid_version v1.js && die "nvm_is_valid_version v1.js did not return 1"
|
|
nvm_is_valid_version v1.23.js && die "nvm_is_valid_version v1.23.js did not return 1"
|
|
nvm_is_valid_version 1.2.3.js && die "nvm_is_valid_version 1.2.3.js did not return 1"
|
|
nvm_is_valid_version 1.2.3.4.5.6.js && die "nvm_is_valid_version 1.2.3.4.5.6.js did not return 1"
|
|
nvm_is_valid_version 1.2.3.4 && die "nvm_is_valid_version 1.2.3.4 did not return 1"
|
|
nvm_is_valid_version 1..2 && die "nvm_is_valid_version 1..2 did not return 1"
|
|
nvm_is_valid_version 1.2.3-foo.js && die "nvm_is_valid_version 1.2.3-foo.js did not return 1"
|
|
nvm_is_valid_version 2.0.0-migration.js && die "nvm_is_valid_version 2.0.0-migration.js did not return 1"
|
|
nvm_is_valid_version 1.2-3.4-5 && die "nvm_is_valid_version 1.2-3.4-5 did not return 1"
|
|
nvm_is_valid_version 1.2.3- && die "nvm_is_valid_version 1.2.3- did not return 1"
|
|
nvm_is_valid_version 1.2.3-rc..1 && die "nvm_is_valid_version 1.2.3-rc..1 did not return 1"
|
|
nvm_is_valid_version '1.js
|
|
2' && die "nvm_is_valid_version with an embedded newline did not return 1"
|
|
|
|
nvm_is_valid_version 1 || die "nvm_is_valid_version 1 did not return 0"
|
|
nvm_is_valid_version v1 || die "nvm_is_valid_version v1 did not return 0"
|
|
nvm_is_valid_version 1.2 || die "nvm_is_valid_version 1.2 did not return 0"
|
|
nvm_is_valid_version v18.20.0 || die "nvm_is_valid_version v18.20.0 did not return 0"
|
|
nvm_is_valid_version 20. || die "nvm_is_valid_version 20. did not return 0"
|
|
nvm_is_valid_version v18.20. || die "nvm_is_valid_version v18.20. did not return 0"
|
|
nvm_is_valid_version iojs-v1.0.0 || die "nvm_is_valid_version iojs-v1.0.0 did not return 0"
|
|
nvm_is_valid_version v9.4.0-rc.1 || die "nvm_is_valid_version v9.4.0-rc.1 did not return 0"
|
|
nvm_is_valid_version v9.9.1-nightly201803256591d9f761 || die "nvm_is_valid_version v9.9.1-nightly201803256591d9f761 did not return 0"
|
|
nvm_is_valid_version v9.0.0-v8-canary201710301f8f3dcf36 || die "nvm_is_valid_version v9.0.0-v8-canary201710301f8f3dcf36 did not return 0"
|
|
nvm_is_valid_version v8.16.2-test201910293843c56739f || die "nvm_is_valid_version v8.16.2-test201910293843c56739f did not return 0"
|
|
nvm_is_valid_version iojs-v3.2.1-nightly201508291a531b4e44 || die "nvm_is_valid_version iojs-v3.2.1-nightly201508291a531b4e44 did not return 0"
|
|
|
|
# `nvm_is_valid_version` must not fork a command for a plain version: mock
|
|
# `awk`, which the version comparisons used, and fail if it runs. (Prereleases
|
|
# still reach the comparison, which is why this checks a release version.)
|
|
TEST_DIR="$(pwd)/nvm_is_valid_version_tmp"
|
|
[ ! -e "${TEST_DIR}" ] && mkdir "${TEST_DIR}"
|
|
MOCK_BIN="${TEST_DIR}/bin"
|
|
mkdir -p "${MOCK_BIN}"
|
|
{
|
|
echo '#!/bin/sh'
|
|
echo 'echo "awk was called" >&2'
|
|
echo 'exit 1'
|
|
} > "${MOCK_BIN}/awk"
|
|
chmod +x "${MOCK_BIN}/awk"
|
|
|
|
PATH="${MOCK_BIN}:${PATH}" nvm_is_valid_version v18.20.0 \
|
|
|| die 'nvm_is_valid_version v18.20.0 forked a command'
|
|
|
|
rm -rf "${TEST_DIR}"
|