-
-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
98 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
#!/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 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'" | ||
|
||
npm() { | ||
local args | ||
args="$@" | ||
if [ "_$args" = "_config 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" = "_3" ] || die "'nvm_die_on_prefix 0 foo' did not exit with 3 with bad prefix set; got '$EXIT_CODE'" | ||
|
||
cleanup |