#!/usr/bin/env bash

cat <<EOF >mise.toml
[system.packages]
"apt:bc" = "latest"
"brew:jq" = "latest"
"dnf:bc" = "latest"
"pacman:bc" = "latest"
EOF

# status renders on any platform; unavailable managers are skipped, not errors
assert_succeed "mise system status"
assert_contains "mise system status" "bc"
assert_contains "mise system status --json" '"apt"'

# unknown managers warn but don't fail
cat <<EOF >mise.toml
[system.packages]
"not-a-real-manager:whatever" = "latest"
EOF
assert_succeed "mise system status"
assert_contains "mise system status 2>&1" "unknown system package manager"

# the manager prefix is required; entries without one warn but don't fail
cat <<EOF >mise.toml
[system.packages]
"noprefix" = "latest"
EOF
assert_succeed "mise system status"
assert_contains "mise system status 2>&1" "invalid system package spec"

# empty [system.packages] section
cat <<EOF >mise.toml
[system.packages]
EOF
assert_succeed "mise system status"

# no [system] section at all
cat <<EOF >mise.toml
[tools]
EOF
assert_succeed "mise system status"
