mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-10-26 04:10:36 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| set -e
 | |
| 
 | |
| die () { echo "$@" ; cleanup ; exit 1; }
 | |
| 
 | |
| cleanup() {
 | |
|   unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs
 | |
|   if [ -n TEMP_NVM_COLORS ]; then
 | |
|     export NVM_COLORS=TEMP_NVM_COLORS
 | |
|   fi
 | |
|   unset TEMP_NVM_COLORS
 | |
| }
 | |
| 
 | |
| \. ../../../nvm.sh
 | |
| if [ -n ${NVM_COLORS} ]; then
 | |
|   export TEMP_NVM_COLORS=NVM_COLORS
 | |
|   unset NVM_COLORS
 | |
| fi
 | |
| 
 | |
| nvm deactivate 2>/dev/null || die 'unable to deactivate'
 | |
| 
 | |
| \. ../../common.sh
 | |
| 
 | |
| MOCKS_DIR="$PWD/mocks"
 | |
| 
 | |
| nvm_download() {
 | |
|   if [ "$*" = "-L -s $(nvm_get_mirror node std)/index.tab -o -" ]; then
 | |
|     cat "$MOCKS_DIR/nodejs.org-dist-index.tab"
 | |
|     return
 | |
|   fi
 | |
|   return 42
 | |
| }
 | |
| 
 | |
| EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote lts.txt"
 | |
| OUTPUT="$(nvm ls-remote --lts | sed 's/[ \t]*$//')"
 | |
| EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )"
 | |
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm ls-remote --lts did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")"
 | |
| 
 | |
| EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote lts.txt"
 | |
| OUTPUT="$(nvm ls-remote "lts/*" | sed 's/[ \t]*$//')"
 | |
| EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )"
 | |
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm ls-remote lts/* did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")"
 | |
| 
 | |
| MOCKS_DIR="$PWD/mocks"
 | |
| LTS_NAMES_PATH="${MOCKS_DIR}/LTS_names.txt"
 | |
| LTS_LIST="$(cat "${LTS_NAMES_PATH}" | tail -n +2)"
 | |
| 
 | |
| INDEX=1
 | |
| printf '%s\n' "${LTS_LIST}" | while IFS= read -r LTS; do
 | |
|   ACTUAL="$(nvm ls-remote "lts/-${INDEX}" | sed 's/[ \t]*$//')"
 | |
|   MESSAGE="for lts/-${INDEX} (${LTS})"
 | |
|   EXPECTED="$(nvm ls-remote "lts/${LTS}" | sed 's/[ \t]*$//')"
 | |
|   [ "${ACTUAL}" = "${EXPECTED}" ] || die "${MESSAGE}: expected >${EXPECTED}<, got >${ACTUAL}<"
 | |
| 
 | |
|   INDEX=$(($INDEX + 1))
 | |
| done
 | |
| 
 | |
| 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"
 | |
| }
 | |
| 
 | |
| EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote.txt"
 | |
| OUTPUT="$(nvm ls-remote | sed 's/[ \t]*$//')"
 | |
| EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )"
 | |
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm ls-remote did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")"
 | |
| 
 | |
| cleanup
 |