#!/bin/sh set -ex cleanup() { unset -f nvm_has_system_node nvm_print_npm_version } die() { echo $@ ; cleanup ; exit 1; } \. ../../nvm.sh nvm_has_system_node() { return 0; } nvm_print_npm_version() { command printf ' (npm v1.2.3)'; } EXPECTED_OUTPUT="Now using system version of node: $(node -v)$(nvm_print_npm_version)" set +x # since stderr is needed OUTPUT="$(nvm use system 2>&1)" set -x [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node. Got >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" EXPECTED_OUTPUT="" set +x # since stderr is needed OUTPUT="$(nvm use --silent system 2>&1 | tail -1)" set -x [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node or --silent was not silent" nvm_has_system_node() { return 1; } nvm_print_npm_version() { command printf ''; } EXPECTED_OUTPUT="System version of node not found." set +x # since stderr is needed OUTPUT="$(nvm use system 2>&1 | tail -1)" set -x [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found" nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found" EXPECTED_OUTPUT="" set +x # since stderr is needed OUTPUT="$(nvm use --silent system 2>&1 | tail -1)" set -x [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found or --silent was not silent" nvm use --silent system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found or --silent was not silent" cleanup