#!/usr/bin/env bash

# `--bump` used to strip SemVer build metadata from the pin it wrote, so a k3s
# pin of 1.36.4+k3s1 was rewritten to 1.37.0 -- a tag that does not exist.
# Regression test for https://github.com/jdx/mise/discussions/13244

PLUGIN_DIR="$MISE_DATA_DIR/plugins/metatest"
mkdir -p "$PLUGIN_DIR/bin"

cat <<'LISTALL' >"$PLUGIN_DIR/bin/list-all"
#!/usr/bin/env bash
echo "1.36.4+k3s1 1.37.0+k3s1"
LISTALL
chmod +x "$PLUGIN_DIR/bin/list-all"

cat <<'INSTALL' >"$PLUGIN_DIR/bin/install"
#!/usr/bin/env bash
mkdir -p "$ASDF_INSTALL_PATH/bin"
printf '#!/usr/bin/env bash\necho "metatest %s"\n' "$ASDF_INSTALL_VERSION" \
  >"$ASDF_INSTALL_PATH/bin/metatest"
chmod +x "$ASDF_INSTALL_PATH/bin/metatest"
INSTALL
chmod +x "$PLUGIN_DIR/bin/install"

cat <<'CONFIG' >mise.toml
[tools]
metatest = "1.36.4+k3s1"
CONFIG
mise install

# The bump has to name the same version the install does.
assert_contains "mise upgrade --bump --dry-run" "Would install metatest@1.37.0+k3s1"
assert_contains "mise upgrade --bump --dry-run" "Would bump metatest@1.37.0+k3s1"

mise upgrade --bump
assert_contains "cat mise.toml" 'metatest = "1.37.0+k3s1"'
assert_contains "mise x -- metatest" "metatest 1.37.0+k3s1"
