| #!/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 |