#!/usr/bin/env bash

# Test validation for monorepo task paths

# Test 1: Running monorepo task without a monorepo root should error
cat <<EOF >mise.toml
[tasks.local]
run = 'echo "local task"'
EOF

# Should fail with helpful error about monorepo_root
assert_fail "mise run '//some:task'" "require a monorepo root configuration"

# Test 2: Wildcard patterns should also trigger validation
cat <<EOF >mise.toml
[tasks.local]
run = 'echo "local task"'
EOF

# Wildcard pattern without monorepo root should fail
assert_fail "mise run '//...:build'" "require a monorepo root configuration"

# Test 3: Three-dot syntax should also trigger validation
assert_fail "mise run '...:build'" "require a monorepo root configuration"

# Test 4: Legacy experimental_monorepo_root remains a hidden compatibility alias
cat <<EOF >mise.toml
experimental_monorepo_root = true

[tasks.local]
run = 'echo "legacy alias works"'
EOF

assert "mise run ':local'" "legacy alias works"
