#!/usr/bin/env bash

# Test that package.json is used as an idiomatic version file

# Enable idiomatic version files for node and pnpm
mise settings set idiomatic_version_file_enable_tools "node,pnpm"

# Test devEngines.runtime for node
cat >package.json <<'EOF'
{
  "devEngines": {
    "runtime": {
      "name": "node",
      "version": ">=22.0.0"
    }
  }
}
EOF

assert_contains "mise current node" "22."

# Test packageManager field for pnpm
cat >package.json <<'EOF'
{
  "packageManager": "pnpm@9.1.0+sha256.abcdef"
}
EOF

assert_contains "mise current pnpm" "9.1.0"

# Test devEngines.packageManager overrides packageManager field
cat >package.json <<'EOF'
{
  "devEngines": {
    "packageManager": {
      "name": "pnpm",
      "version": "^10.0.0"
    }
  },
  "packageManager": "pnpm@9.1.0"
}
EOF

assert_contains "mise current pnpm" "10."

# Test package.json with no relevant fields doesn't break anything
cat >package.json <<'EOF'
{
  "name": "test-project",
  "version": "1.0.0"
}
EOF

# Should not error, just no version detected
assert "mise current node" ""
