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