mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-10-31 18:25:52 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| cleanup () {
 | |
|   alias nvm_has='\nvm_has'
 | |
|   alias npm='\npm'
 | |
|   unset -f nvm_has npm
 | |
| }
 | |
| die () { echo $@ ; exit 1; }
 | |
| 
 | |
| \. ../../../nvm.sh
 | |
| 
 | |
| OUTPUT="$(nvm_die_on_prefix 2>&1)"
 | |
| EXPECTED_OUTPUT="First argument \"delete the prefix\" must be zero or one"
 | |
| EXIT_CODE="$(nvm_die_on_prefix >/dev/null 2>&1; echo $?)"
 | |
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'"
 | |
| [ "_$EXIT_CODE" = "_1" ] || die "'nvm_die_on_prefix' did not exit with 1; got "$EXIT_CODE""
 | |
| 
 | |
| OUTPUT="$(nvm_die_on_prefix 2 2>&1)"
 | |
| EXPECTED_OUTPUT="First argument \"delete the prefix\" must be zero or one"
 | |
| EXIT_CODE="$(nvm_die_on_prefix 2 >/dev/null 2>&1; echo $?)"
 | |
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 2' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'"
 | |
| [ "_$EXIT_CODE" = "_1" ] || die "'nvm_die_on_prefix' did not exit with 1; got "$EXIT_CODE""
 | |
| 
 | |
| OUTPUT="$(nvm_die_on_prefix 0 2>&1)"
 | |
| EXPECTED_OUTPUT="Second argument \"nvm command\" must be nonempty"
 | |
| EXIT_CODE="$(nvm_die_on_prefix 0 >/dev/null 2>&1; echo $?)"
 | |
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'"
 | |
| [ "_$EXIT_CODE" = "_2" ] || die "'nvm_die_on_prefix 0' did not exit with 2; got '$EXIT_CODE'"
 | |
| 
 | |
| nvm_has() { return 1; } # ie, npm is not installed
 | |
| OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)"
 | |
| [ -z "$OUTPUT" ] || die "nvm_die_on_prefix was not a noop when nvm_has returns 1, got '$OUTPUT'"
 | |
| 
 | |
| nvm_has() { return 0; }
 | |
| 
 | |
| npm() {
 | |
|   local args
 | |
|   args="$@"
 | |
|   if [ "_$args" = "_config --loglevel=warn get prefix" ]; then
 | |
|     echo "$(nvm_version_dir new)/good prefix"
 | |
|   fi
 | |
| }
 | |
| OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)"
 | |
| [ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop when prefix is good; got '$OUTPUT'"
 | |
| 
 | |
| OUTPUT="$(PREFIX=bar nvm_die_on_prefix 0 foo 2>&1)"
 | |
| EXPECTED_OUTPUT='nvm is not compatible with the "PREFIX" environment variable: currently set to "bar"
 | |
| Run `unset PREFIX` to unset it.'
 | |
| EXIT_CODE="$(PREFIX=bar nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)"
 | |
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'"
 | |
| [ "_$EXIT_CODE" = "_3" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 3; got '$EXIT_CODE'"
 | |
| 
 | |
| OUTPUT="$(NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo 2>&1)"
 | |
| EXPECTED_OUTPUT='nvm is not compatible with the "NPM_CONFIG_PREFIX" environment variable: currently set to "bar"
 | |
| Run `unset NPM_CONFIG_PREFIX` to unset it.'
 | |
| EXIT_CODE="$(NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)"
 | |
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'"
 | |
| [ "_$EXIT_CODE" = "_4" ] || die "'NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'"
 | |
| 
 | |
| npm() {
 | |
|   local args
 | |
|   args="$@"
 | |
|   if [ "_$args" = "_config --loglevel=warn get prefix" ]; then
 | |
|     echo "./bad prefix"
 | |
|   fi
 | |
| }
 | |
| OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)"
 | |
| EXPECTED_OUTPUT="nvm is not compatible with the npm config \"prefix\" option: currently set to \"./bad prefix\"
 | |
| Run \`npm config delete prefix\` or \`foo\` to unset it."
 | |
| EXIT_CODE="$(nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)"
 | |
| [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT' with bad prefix set; got '$OUTPUT'"
 | |
| [ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' did not exit with 10 with bad prefix set; got '$EXIT_CODE'"
 | |
| 
 | |
| cleanup
 |