#!/usr/bin/env bash
# Exact workstation Node parity must converge the buildbox patch version, not merely its major.
set -euo pipefail

CHECKS="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/lib/buildbox-checks.sh"
WORK="$(mktemp -d)"
trap 'rm -rf "$WORK"' EXIT
fail=0
check() {
  if [ "$2" = "$3" ]; then printf 'ok   %s\n' "$1"
  else printf 'FAIL %s\n  want: %s\n  got:  %s\n' "$1" "$3" "$2"; fail=1
  fi
}

# Load the production functions under test without executing every fleet check in the payload.
eval "$(python3 - "$CHECKS" <<'PY'
from pathlib import Path
import sys

lines = Path(sys.argv[1]).read_text(encoding="utf-8").splitlines()
for name in ("node_is_wanted", "node_want_label", "item_node", "item_node_system"):
    start = next(i for i, line in enumerate(lines) if line == f"{name}() {{")
    end = next(i for i in range(start + 1, len(lines)) if lines[i] == "}")
    body = "\n".join(lines[start:end + 1])
    print(body.replace("/usr/local/bin/node", "${NODE_TEST_ROOT}/system-node"))
PY
)"

mkdir -p "$WORK/bin"
printf 'v24.18.0\n' >"$WORK/version"
cat >"$WORK/bin/node" <<'EOF'
#!/usr/bin/env bash
cat "$NODE_TEST_ROOT/version"
EOF
cat >"$WORK/bin/mise" <<'EOF'
#!/usr/bin/env bash
printf '%s\n' "$*" >"$NODE_TEST_ROOT/mise-args"
case "$1" in
  use) [ "${MISE_STALE:-0}" = 1 ] || printf 'v24.19.0\n' >"$NODE_TEST_ROOT/version";;
  which) printf '%s/bin/node\n' "$NODE_TEST_ROOT";;
esac
EOF
cat >"$WORK/bin/sudo" <<'EOF'
#!/usr/bin/env bash
[ "$1" = -n ] && shift
[ "$1" = install ] || exit 2
src="${@: -2:1}"
dest="${@: -1}"
cp "$src" "$dest"
EOF
chmod 755 "$WORK/bin/node" "$WORK/bin/mise" "$WORK/bin/sudo"
export NODE_TEST_ROOT="$WORK"
export PATH="$WORK/bin:/usr/bin:/bin"
NODE_MAJOR=24
NODE_VERSION=v24.19.0
ok() { printf 'OK %s %s\n' "$1" "$2"; }
bad() { printf 'DRIFT %s %s\n' "$1" "$2"; }
fixed() { printf 'FIXED %s %s\n' "$1" "$2"; }

MODE=audit
check "patch skew is drift" "$(item_node)" "DRIFT node want v24.19.0, have v24.18.0"
MODE=bootstrap
check "successful stale mise remains drift" "$(MISE_STALE=1 item_node)" "DRIFT node mise installed wrong version (want v24.19.0, got v24.18.0)"
check "bootstrap converges exact patch" "$(item_node)" "FIXED node v24.19.0"
check "mise receives exact version" "$(cat "$WORK/mise-args")" "use -g node@24.19.0"
MODE=audit
check "exact version audits clean" "$(item_node)" "OK node v24.19.0"

cat >"$WORK/system-node" <<'EOF'
#!/usr/bin/env bash
printf 'v24.18.0\n'
EOF
chmod 755 "$WORK/system-node"
MODE=bootstrap
check "system binary converges exact patch" "$(item_node_system)" "FIXED node-system v24.19.0"
printf 'v24.18.0\n' >"$WORK/version"
check "stale mise binary is never installed" "$(item_node_system)" "DRIFT node-system mise binary mismatch (want v24.19.0, got v24.18.0)"

NODE_VERSION=""
printf 'v24.18.0\n' >"$WORK/version"
check "legacy direct invocation keeps major contract" "$(item_node)" "OK node v24.18.0"

exit "$fail"
