#!/usr/bin/env bash

TOMBI_VERSION="0.9.22"
mise use -g tombi@$TOMBI_VERSION
TOMBI_LINT="mise x tombi@$TOMBI_VERSION -- tombi lint --offline --no-cache --error-on-warnings --quiet"
cat >"$HOME/tombi.toml" <<TOML
[schema]
enabled = true
strict = true
[[schemas]]
path = "file://$ROOT/schema/mise.json"
include = ["remove-empty-valid.toml", "remove-empty-invalid.toml"]
TOML
cat >remove-empty-valid.toml <<'TOML'
[dotfiles]
"~/.work.toml" = { source = "work.toml.tera", mode = "template", remove_empty = true }
"~/.other" = { source = "other", mode = "copy", remove_empty = false }
# an omitted mode may resolve to dotfiles.default_mode = "template"
"~/.implied" = { source = "implied.tera", remove_empty = true }
"~/.netrc" = { source = "netrc.tera", mode = "template", permissions = "0600", remove_empty = true }
TOML
assert_succeed "$TOMBI_LINT remove-empty-valid.toml"
for entry in \
  '{ source = "other", mode = "copy", remove_empty = true }' \
  '{ content = "inline", remove_empty = true }' \
  '{ permissions = "0600", remove_empty = true }' \
  '{ mode = "absent", remove_empty = true }'; do
  printf '[dotfiles]\n"~/.app" = %s\n' "$entry" >remove-empty-invalid.toml
  assert_fail "$TOMBI_LINT remove-empty-invalid.toml"
done
