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