mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-02-04 17:02:48 +08:00
[Fix] nvm_has_colors: also check if stdout is a terminal
This commit is contained in:
@@ -15,11 +15,11 @@ fi
|
||||
nvm alias test-stable-1 0.0.2 || die '`nvm alias test-stable-1 0.0.2` failed'
|
||||
|
||||
OUTPUT="$(nvm alias test-stable-1 | strip_colors)"
|
||||
EXPECTED_OUTPUT='test-stable-1 -> 0.0.2 (-> v0.0.2)'
|
||||
EXPECTED_OUTPUT='test-stable-1 -> 0.0.2 (-> v0.0.2 *)'
|
||||
echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.2 did not set test-stable-1 to 0.0.2: got '$OUTPUT'"
|
||||
|
||||
nvm alias test-stable-1 0.0.1 || die '`nvm alias test-stable-1 0.0.1` failed'
|
||||
|
||||
OUTPUT="$(nvm alias test-stable-1 | strip_colors)"
|
||||
EXPECTED_OUTPUT='test-stable-1 -> 0.0.1 (-> v0.0.1)'
|
||||
EXPECTED_OUTPUT='test-stable-1 -> 0.0.1 (-> v0.0.1 *)'
|
||||
echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.1 did not set test-stable-1 to 0.0.1: got '$OUTPUT'"
|
||||
|
||||
@@ -10,18 +10,18 @@ NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors)
|
||||
|
||||
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)" \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "stable -> $EXPECTED_STABLE (-> $STABLE_VERSION *) (default)" \
|
||||
|| die "nvm alias did not contain the default local stable node version; got '$NVM_ALIAS_OUTPUT'"
|
||||
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "node -> stable (-> $STABLE_VERSION) (default)" \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "node -> stable (-> $STABLE_VERSION *) (default)" \
|
||||
|| die "nvm alias did not contain the default local stable node version under 'node'; got '$NVM_ALIAS_OUTPUT'"
|
||||
|
||||
EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
||||
UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)" \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION *) (default)" \
|
||||
|| die "nvm alias did not contain the default local unstable node version; got '$NVM_ALIAS_OUTPUT'"
|
||||
|
||||
EXPECTED_IOJS="$(nvm_print_implicit_alias local iojs)"
|
||||
IOJS_VERSION="$(nvm_version "$EXPECTED_IOJS")"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "iojs -> $EXPECTED_IOJS (-> $IOJS_VERSION) (default)" \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F "iojs -> $EXPECTED_IOJS (-> $IOJS_VERSION *) (default)" \
|
||||
|| die "nvm alias did not contain the default local iojs version; got '$NVM_ALIAS_OUTPUT'"
|
||||
|
||||
@@ -35,16 +35,16 @@ nvm alias iojs unstable
|
||||
|
||||
NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors)
|
||||
|
||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)" \
|
||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION *)" \
|
||||
|| die "nvm alias did not contain the overridden 'stable' alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
|
||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)" \
|
||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION *)" \
|
||||
|| die "nvm alias did not contain the overridden 'unstable' alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
|
||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "node -> stable (-> $UNSTABLE_VERSION)" \
|
||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "node -> stable (-> $UNSTABLE_VERSION *)" \
|
||||
|| die "nvm alias did not contain the overridden 'node' alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
|
||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "iojs -> unstable (-> $STABLE_VERSION)" \
|
||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "iojs -> unstable (-> $STABLE_VERSION *)" \
|
||||
|| die "nvm alias did not contain the overridden 'iojs' alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
|
||||
cleanup
|
||||
|
||||
@@ -7,43 +7,43 @@
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
NVM_ALIAS_OUTPUT="$(nvm alias | strip_colors)"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-1 -> 0.0.1 (-> v0.0.1)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-1 -> 0.0.1 (-> v0.0.1 *)' \
|
||||
|| die "did not find test-stable-1 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-2 -> 0.0.2 (-> v0.0.2)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-2 -> 0.0.2 (-> v0.0.2 *)' \
|
||||
|| die "did not find test-stable-2 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-3 -> 0.0.3 (-> v0.0.3)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-3 -> 0.0.3 (-> v0.0.3 *)' \
|
||||
|| die "did not find test-stable-3 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-4 -> 0.0.4 (-> v0.0.4)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-4 -> 0.0.4 (-> v0.0.4 *)' \
|
||||
|| die "did not find test-stable-4 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-5 -> 0.0.5 (-> v0.0.5)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-5 -> 0.0.5 (-> v0.0.5 *)' \
|
||||
|| die "did not find test-stable-5 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-6 -> 0.0.6 (-> v0.0.6)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-6 -> 0.0.6 (-> v0.0.6 *)' \
|
||||
|| die "did not find test-stable-6 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-7 -> 0.0.7 (-> v0.0.7)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-7 -> 0.0.7 (-> v0.0.7 *)' \
|
||||
|| die "did not find test-stable-7 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-8 -> 0.0.8 (-> v0.0.8)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-8 -> 0.0.8 (-> v0.0.8 *)' \
|
||||
|| die "did not find test-stable-8 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-9 -> 0.0.9 (-> v0.0.9)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-9 -> 0.0.9 (-> v0.0.9 *)' \
|
||||
|| die "did not find test-stable-9 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-10 -> 0.0.10 (-> v0.0.10)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-10 -> 0.0.10 (-> v0.0.10 *)' \
|
||||
|| die "did not find test-stable-10 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-1 -> 0.1.1 (-> v0.1.1)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-1 -> 0.1.1 (-> v0.1.1 *)' \
|
||||
|| die "did not find test-unstable-1 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-2 -> 0.1.2 (-> v0.1.2)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-2 -> 0.1.2 (-> v0.1.2 *)' \
|
||||
|| die "did not find test-unstable-2 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-3 -> 0.1.3 (-> v0.1.3)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-3 -> 0.1.3 (-> v0.1.3 *)' \
|
||||
|| die "did not find test-unstable-3 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-4 -> 0.1.4 (-> v0.1.4)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-4 -> 0.1.4 (-> v0.1.4 *)' \
|
||||
|| die "did not find test-unstable-4 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-5 -> 0.1.5 (-> v0.1.5)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-5 -> 0.1.5 (-> v0.1.5 *)' \
|
||||
|| die "did not find test-unstable-5 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-6 -> 0.1.6 (-> v0.1.6)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-6 -> 0.1.6 (-> v0.1.6 *)' \
|
||||
|| die "did not find test-unstable-6 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-7 -> 0.1.7 (-> v0.1.7)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-7 -> 0.1.7 (-> v0.1.7 *)' \
|
||||
|| die "did not find test-unstable-7 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-8 -> 0.1.8 (-> v0.1.8)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-8 -> 0.1.8 (-> v0.1.8 *)' \
|
||||
|| die "did not find test-unstable-8 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-9 -> 0.1.9 (-> v0.1.9)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-9 -> 0.1.9 (-> v0.1.9 *)' \
|
||||
|| die "did not find test-unstable-9 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-10 -> 0.1.10 (-> v0.1.10)' \
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-10 -> 0.1.10 (-> v0.1.10 *)' \
|
||||
|| die "did not find test-unstable-10 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||
|
||||
@@ -14,7 +14,7 @@ nvm_ensure_default_set 0.3 || die "'nvm_ensure_default_set' with an existing def
|
||||
nvm unalias default || die "'nvm unalias default' failed"
|
||||
|
||||
OUTPUT="$(nvm_ensure_default_set 0.2)"
|
||||
EXPECTED_OUTPUT="Creating default alias: default -> 0.2 (-> iojs-v0.2.10)"
|
||||
EXPECTED_OUTPUT="Creating default alias: default -> 0.2 (-> iojs-v0.2.10 *)"
|
||||
EXIT_CODE="$?"
|
||||
|
||||
[ "_$(echo "$OUTPUT" | strip_colors)" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set 0.2' did not output '$EXPECTED_OUTPUT', got '$OUTPUT'"
|
||||
|
||||
@@ -7,6 +7,8 @@ die () { echo "$@" ; exit 1; }
|
||||
|
||||
set -e
|
||||
|
||||
nvm_has_colors() { return 0; }
|
||||
|
||||
nvm_get_colors(){
|
||||
echo "0;95m"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@ die () {
|
||||
|
||||
set -e
|
||||
|
||||
nvm_has_colors() { return 0; }
|
||||
|
||||
nvm_get_colors(){
|
||||
echo "0;95m"
|
||||
}
|
||||
|
||||
@@ -9,6 +9,9 @@ die () {
|
||||
}
|
||||
|
||||
set -e
|
||||
|
||||
nvm_has_colors() { return 0; }
|
||||
|
||||
# # # expecting in red and two grays:
|
||||
OUTPUT=$(echo $(nvm_print_formatted_alias fakealias fakedest) | awk '{ print substr($0, 1, 21); }')
|
||||
EXPECTED_OUTPUT="$(command printf %b "\033[0;31mfakealias\033[0m ")"
|
||||
|
||||
@@ -11,6 +11,8 @@ die () {
|
||||
|
||||
set -e
|
||||
|
||||
nvm_has_colors() { return 0; }
|
||||
|
||||
nvm_get_colors(){
|
||||
echo "0;95m"
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ if [ -n ${NVM_COLORS} ]; then
|
||||
unset NVM_COLORS
|
||||
fi
|
||||
|
||||
nvm_has_colors() { return 0; }
|
||||
|
||||
# default system color
|
||||
nvm use system
|
||||
OUTPUT=$(nvm_print_versions system)
|
||||
|
||||
@@ -33,6 +33,8 @@ printf '%s\n' "$(cat "${LTS_NAMES_PATH}" | tail -n +1)" | while IFS= read -r LTS
|
||||
cp "${NVM_DIR}/alias/lts-backup/${LTS}" "${NVM_DIR}/alias/lts/"
|
||||
done
|
||||
|
||||
nvm_has_colors() { return 0; }
|
||||
|
||||
nvm deactivate 2>/dev/null || die 'unable to deactivate'
|
||||
|
||||
\. ../../common.sh
|
||||
@@ -67,12 +69,14 @@ printf '%s\n' "${LTS_LIST}" | while IFS= read -r LTS; do
|
||||
INDEX=$(($INDEX + 1))
|
||||
done
|
||||
|
||||
nvm_has_colors() { return 1; }
|
||||
OUTPUT="$(nvm ls-remote lts/ARGON 2>&1)"
|
||||
EXIT_CODE=$?
|
||||
nvm_has_colors() { return 0; }
|
||||
[ $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"
|
||||
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"
|
||||
|
||||
30
test/fast/Unit tests/nvm_has_colors
Executable file
30
test/fast/Unit tests/nvm_has_colors
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
: nvm.sh
|
||||
\. ../../../nvm.sh
|
||||
|
||||
# nvm_has_colors should be false in command substitution (stdout is not a terminal)
|
||||
[ "$(nvm_has_colors; echo $?)" = "1" ] || die 'nvm_has_colors should be false in command substitution'
|
||||
|
||||
# nvm_has_colors should be false when stdout goes to /dev/null
|
||||
! nvm_has_colors >/dev/null || die 'nvm_has_colors should be false when stdout goes to /dev/null'
|
||||
|
||||
# nvm_has_colors should be false when stdout goes to a pipe
|
||||
(! nvm_has_colors || echo "boo!") | read && die 'nvm_has_colors should be false when stdout goes to a pipe'
|
||||
|
||||
# nvm_has_colors should be false when NVM_NO_COLORS is set, even if stdout is a terminal
|
||||
if [ -t 1 ]; then
|
||||
! NVM_NO_COLORS="--no-colors" nvm_has_colors || die 'nvm_has_colors should be false when NVM_NO_COLORS is set'
|
||||
fi
|
||||
|
||||
# nvm_has_colors should be true when stdout is a terminal and colors are supported
|
||||
if [ -t 1 ] && nvm_has tput && [ "$(command tput -T "${TERM:-vt100}" colors)" -ge 8 ]; then
|
||||
nvm_has_colors || die 'nvm_has_colors should be true when stdout is a terminal with color support'
|
||||
fi
|
||||
|
||||
# nvm_has_colors should be true when redirected to /dev/tty (if available)
|
||||
if (exec >/dev/tty) 2>/dev/null && nvm_has tput && [ "$(command tput -T "${TERM:-vt100}" colors)" -ge 8 ]; then
|
||||
nvm_has_colors >/dev/tty || die 'nvm_has_colors should be true when stdout goes to /dev/tty'
|
||||
fi
|
||||
@@ -39,7 +39,7 @@ nvm_version() {
|
||||
}
|
||||
|
||||
OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" "$NVM_ALIAS_DIR/blah" | strip_colors)"
|
||||
EXPECTED_OUTPUT='blah -> "blah" (-> v"blah")'
|
||||
EXPECTED_OUTPUT='blah -> "blah" (-> v"blah" *)'
|
||||
[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\" \"\$NVM_ALIAS_DIR/blah\"' should strip alias dir and print nvm_alias output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'"
|
||||
|
||||
cleanup
|
||||
|
||||
@@ -33,7 +33,7 @@ nvm_version() {
|
||||
}
|
||||
|
||||
OUTPUT="$(nvm_print_default_alias blah | strip_colors)"
|
||||
EXPECTED_OUTPUT='blah -> "local-blah" (-> v"local-blah") (default)'
|
||||
EXPECTED_OUTPUT='blah -> "local-blah" (-> v"local-blah" *) (default)'
|
||||
[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_default_alias blah' should strip alias dir and print nvm_print_implicit_alias output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'"
|
||||
|
||||
cleanup
|
||||
|
||||
Reference in New Issue
Block a user