#!/usr/bin/env bash

echo "settings.all_compile = false" >mise.toml
echo 'settings.disable_backends = ["rust", "java"]' >>mise.toml

assert_contains "mise settings" 'all_compile       false            ~/workdir/mise.toml
disable_backends  ["rust", "java"] ~/workdir/mise.toml'

assert_contains "mise settings --json" '{
  "all_compile": false,
  "disable_backends": [
    "rust",
    "java"
  ]
}'

assert_contains "mise settings --toml" 'all_compile = false
disable_backends = ["rust", "java"]'

assert_contains "mise settings --json-extended" "{
  \"all_compile\": {
    \"value\": false,
    \"type\": \"boolean\",
    \"description\": \"do not use precompiled binaries for any tool\",
    \"source\": \"$HOME/workdir/mise.toml\"
  },
  \"disable_backends\": {
    \"value\": [
      \"rust\",
      \"java\"
    ],
    \"type\": \"array\",
    \"description\": \"Backends to disable for new installs, such as \`asdf\`, \`pipx\`, or a vfox-backend plugin name. This does not uninstall or disable tools already installed with those backends.\",
    \"source\": \"$HOME/workdir/mise.toml\"
  }
}"

assert_contains "mise settings ls -T" "all_compile = false"

cat >>mise.toml <<'EOF'

[settings.task.cache]
remote_mode = "read-only"
remote_url = "https://cache.example.test"
EOF

assert_contains "mise settings ls task.cache" "task.cache.remote_mode"
assert_contains "mise settings ls task.cache" "task.cache.remote_url"
assert "mise settings ls task.cache --json | jq -r '.task.cache.remote_url'" \
  "https://cache.example.test"
assert "mise settings ls task.cache --json-extended | jq -r '.task.cache.remote_mode.value'" \
  "read-only"
assert_contains "mise settings ls task.cache --toml" "[task.cache]"
