[Fix] `nvm_die_on_prefix`: use directory comparison rather than string
diff --git a/nvm.sh b/nvm.sh
index 505c7ff..6a9b7f4 100644
--- a/nvm.sh
+++ b/nvm.sh
@@ -2231,7 +2231,7 @@
   local NVM_OS
   NVM_OS="$(nvm_get_os)"
   NVM_NPM_PREFIX="$(npm config --loglevel=warn get prefix)"
-  if [ "${NVM_VERSION_DIR}" != "${NVM_NPM_PREFIX}" ] && ! (nvm_tree_contains_path "${NVM_VERSION_DIR}" "${NVM_NPM_PREFIX}" >/dev/null 2>&1); then
+  if [ ! "${NVM_VERSION_DIR}" -ef "${NVM_NPM_PREFIX}" ] && ! (nvm_tree_contains_path "${NVM_VERSION_DIR}" "${NVM_NPM_PREFIX}" >/dev/null 2>&1); then
     if [ "_${NVM_DELETE_PREFIX}" = "_1" ]; then
       npm config --loglevel=warn delete prefix
     else
diff --git a/test/fast/Unit tests/nvm_die_on_prefix b/test/fast/Unit tests/nvm_die_on_prefix
index c9b99e1..7254e47 100755
--- a/test/fast/Unit tests/nvm_die_on_prefix
+++ b/test/fast/Unit tests/nvm_die_on_prefix
@@ -1,11 +1,22 @@
 #!/bin/sh
 
+TEST_PWD=$(pwd)
+TEST_DIR="$TEST_PWD/nvm_die_on_prefix_tmp"
+
 cleanup () {
+  rm -rf "$TEST_DIR"
   alias nvm_has='\nvm_has'
   alias npm='\npm'
   unset -f nvm_has npm
 }
-die () { echo "$@" ; exit 1; }
+
+die () {
+  echo "$@";
+  cleanup;
+  exit 1;
+}
+
+[ ! -e "$TEST_DIR" ] && mkdir "$TEST_DIR"
 
 \. ../../../nvm.sh
 
@@ -40,9 +51,24 @@
     echo "$(nvm_version_dir new)/good prefix"
   fi
 }
+
 OUTPUT="$(nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)"
 [ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop when prefix is good; got '$OUTPUT'"
 
+mkdir -p "$(nvm_version_dir new)"
+ln -s "$(nvm_version_dir new)" "$TEST_DIR/node"
+
+npm() {
+  local args
+  args="$@"
+  if [ "_$args" = "_config --loglevel=warn get prefix" ]; then
+    echo "$TEST_DIR/node"
+  fi
+}
+
+OUTPUT="$(nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)"
+[ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop when directory is equivalent; got '$OUTPUT'"
+
 OUTPUT="$(PREFIX=bar nvm_die_on_prefix 0 foo "$(nvm_version_dir new)" 2>&1)"
 EXPECTED_OUTPUT='nvm is not compatible with the "PREFIX" environment variable: currently set to "bar"
 Run `unset PREFIX` to unset it.'