mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-07-18 12:58:21 +08:00
[Fix] Parse commented nvmrc content in nvm_ls
Fixes #3761 Signed-off-by: jinhyuk9714 <jinhyuk9714@gmail.com>
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
die () { echo "$@" ; cleanup ; exit 1; }
|
||||
|
||||
cleanup() {
|
||||
unset NVMRC_CONTENT OUTPUT EXIT_CODE TEST_DIR
|
||||
rm -rf "${TEST_DIR-}"
|
||||
}
|
||||
|
||||
: nvm.sh
|
||||
\. ../../../nvm.sh
|
||||
@@ -22,3 +27,26 @@ echo "$OUTPUT" | grep -q "invalid command code" && \
|
||||
# Should return N/A with exit code 3 (not found)
|
||||
[ "$EXIT_CODE" = "3" ] || die "nvm_ls 'foo#bar' should exit with code 3, got $EXIT_CODE"
|
||||
echo "$OUTPUT" | grep -q "N/A" || die "nvm_ls 'foo#bar' should output N/A, got: $OUTPUT"
|
||||
|
||||
TEST_DIR="${PWD}/nvm_ls_hash_pattern_tmp"
|
||||
mkdir -p "${TEST_DIR}/versions/node/v24.13.0/bin" || die 'failed to create test version dir'
|
||||
printf '#!/bin/sh\nprintf v24.13.0\\\\n\n' > "${TEST_DIR}/versions/node/v24.13.0/bin/node" || die 'failed to create test node binary'
|
||||
chmod +x "${TEST_DIR}/versions/node/v24.13.0/bin/node" || die 'failed to chmod test node binary'
|
||||
|
||||
NVM_DIR="${TEST_DIR}"
|
||||
NVMRC_CONTENT='v24.13.0
|
||||
# krypton is the codename for Node.js v24.x'
|
||||
|
||||
OUTPUT="$(nvm_ls "${NVMRC_CONTENT}" 2>&1)"
|
||||
EXIT_CODE=$?
|
||||
|
||||
echo "$OUTPUT" | grep -q "unterminated regular expression" && \
|
||||
die "nvm_ls with .nvmrc comments caused sed 'unterminated regular expression' error: $OUTPUT"
|
||||
|
||||
[ "$EXIT_CODE" = "0" ] || die "nvm_ls with .nvmrc comments should exit with code 0, got $EXIT_CODE"
|
||||
[ "$OUTPUT" = "v24.13.0" ] || die "nvm_ls with .nvmrc comments should output v24.13.0, got: $OUTPUT"
|
||||
|
||||
OUTPUT="$(nvm_version "${NVMRC_CONTENT}" 2>&1)"
|
||||
[ "$OUTPUT" = "v24.13.0" ] || die "nvm_version with .nvmrc comments should output v24.13.0, got: $OUTPUT"
|
||||
|
||||
cleanup
|
||||
|
||||
Reference in New Issue
Block a user