#!/usr/bin/env bash
set -uo pipefail
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
verify="$script_dir/web-deps-verify.sh"
work="$(mktemp -d)"
trap 'rm -rf "$work"' EXIT
mkdir -p "$work/good/node_modules/pkg" "$work/outside"
ln -s pkg "$work/good/node_modules/inside"
"$verify" "$work/good" && echo "ok   contained immutable dependency snapshot accepted" || exit 1
mkdir -p "$work/bad/node_modules"
ln -s "$work/outside" "$work/bad/node_modules/outside"
"$verify" "$work/bad" >/dev/null 2>&1
[[ $? -ne 0 ]] && echo "ok   dependency link escaping release rejected" || { echo "FAIL external dependency accepted" >&2; exit 1; }
mkdir -p "$work/hardlink/node_modules"
printf shared >"$work/outside-file"
ln "$work/outside-file" "$work/hardlink/node_modules/shared"
"$verify" "$work/hardlink" >/dev/null 2>&1
[[ $? -ne 0 ]] && echo "ok   dependency hardlink escaping release rejected" || { echo "FAIL external hardlink accepted" >&2; exit 1; }
