#!/bin/sh die () { echo "$@" ; cleanup ; exit 1; } cleanup () { rm -rf "$(nvm_version_path v0.1.2)" unset -f nvm_has_system_node nvm_has_system_iojs } \. ../../../nvm.sh \. ../../common.sh make_fake_node v0.1.2 OUTPUT="$(nvm_ensure_version_installed foo 2>&1)" EXIT_CODE=$? EXPECTED_OUTPUT='N/A: version "foo" is not yet installed. You need to run `nvm install foo` to install and use it.' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed foo' to give $EXPECTED_OUTPUT, got $OUTPUT" [ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed foo' to exit with 1, got $EXIT_CODE" # Case when .nvmrc file is opened, we should be skip showing the version OUTPUT="$(nvm_ensure_version_installed foo 1 2>&1)" EXIT_CODE=$? EXPECTED_OUTPUT='N/A: version "foo" is not yet installed. You need to run `nvm install` to install and use the node version specified in `.nvmrc`.' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed foo' to give $EXPECTED_OUTPUT, got $OUTPUT" [ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed foo' to exit with 1, got $EXIT_CODE" OUTPUT="$(nvm_ensure_version_installed 0.1)" EXIT_CODE=$? [ "_$OUTPUT" = "_" ] || die "expected 'nvm_ensure_version_installed 0.1' to have no output, got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed 0.1' to exit with 0, got $EXIT_CODE" # Special case for "iojs" OUTPUT="$(nvm_ensure_version_installed iojs 2>&1)" EXIT_CODE=$? EXPECTED_OUTPUT='N/A: version "iojs" is not yet installed. You need to run `nvm install iojs` to install and use it.' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed iojs' to give $EXPECTED_OUTPUT, got $OUTPUT" [ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed iojs' to exit with 1, got $EXIT_CODE" nvm_has_system_node() { return 1; } nvm_has_system_iojs() { return 1; } OUTPUT="$(nvm_ensure_version_installed system 2>&1)" EXIT_CODE=$? EXPECTED_OUTPUT='N/A: no system version of node/io.js is installed.' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed system' with neither installed to give $EXPECTED_OUTPUT, got $OUTPUT" [ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed system' with neither installed to exit with 1, got $EXIT_CODE" nvm_has_system_node() { return 0; } nvm_has_system_iojs() { return 1; } OUTPUT="$(nvm_ensure_version_installed system 2>&1)" EXIT_CODE=$? EXPECTED_OUTPUT='' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed system' with node installed to give $EXPECTED_OUTPUT, got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed system' with node installed to exit with 0, got $EXIT_CODE" nvm_has_system_node() { return 1; } nvm_has_system_iojs() { return 0; } OUTPUT="$(nvm_ensure_version_installed system 2>&1)" EXIT_CODE=$? EXPECTED_OUTPUT='' [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed system' with iojs installed to give $EXPECTED_OUTPUT, got $OUTPUT" [ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed system' with iojs installed to exit with 0, got $EXIT_CODE" cleanup