#!/bin/sh cleanup () { rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1 unset npm_config_prefix rm -f npm PATH="$ORIGINAL_PATH" unset -f setup cleanup die unset message ORIGINAL_PATH } die () { echo $@ ; cleanup ; exit 1; } NVM_ENV=testing \. ../../install.sh setup () { ORIGINAL_PATH="$PATH" npm_config_prefix="$(pwd)" export npm_config_prefix mkdir -p "$npm_config_prefix/lib" } setup npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested because `npm` cannot install the `nop` package' message=$(nvm_check_global_modules) [ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed" npm uninstall -g nop >/dev/null message=$(nvm_check_global_modules) [ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed" # Faking an installation of npm mkdir -p "$npm_config_prefix/lib/node_modules/npm" cat <<'JSON' >"$npm_config_prefix/lib/node_modules/npm/package.json" { "name": "npm", "version": "0.0.1fake" } JSON message=$(nvm_check_global_modules) [ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm had only itself installed as a global module" # Faking the absence of npm PATH=".:$PATH" touch npm chmod +x npm message=$(nvm_check_global_modules) [ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm was unavailable" cleanup