#!/usr/bin/env bash

cat <<'EOF' >mise.toml
[tasks."test:unit"]
run = "echo unit"

[tasks."test:integration"]
run = "echo integration"

[tasks.test]
depends = [
  { task = "missing", optional = true },
  { task = "missing:*", optional = true },
  { task = "test:*", optional = true },
]
run = "echo test"
EOF

output="$(mise run test)"
assert_contains_text "$output" "unit"
assert_contains_text "$output" "integration"
assert_contains_text "$output" "test"

cat <<'EOF' >mise.toml
[tasks.test]
depends = [{ task = "missing", optional = true }]
depends_post = [{ task = "missing-post", optional = true }]
wait_for = [{ task = "missing-wait", optional = true }]
run = "echo test"
EOF

assert "mise run test" "test"
assert_contains "mise tasks validate" "validated successfully"

cat <<'EOF' >mise.toml
[tasks.test]
depends = [{ task = "missing", optional = false }]
run = "echo test"
EOF

assert_fail "mise run test" "task not found: missing"
assert_contains "mise tasks validate 2>&1 || true" "Dependency 'missing' not found"

cat <<'EOF' >mise.toml
[tasks.test]
depends = [{ task = "invalid/path:task", optional = true }]
run = "echo test"
EOF

assert_fail "mise run test" "relative path syntax"
assert_contains "mise tasks validate 2>&1 || true" "relative path syntax"
