#!/usr/bin/env bash

export MISE_DEBUG=0 MISE_TRACE=0 MISE_LOG_LEVEL=info

printf 'dummy 1\ntiny 1\n' >.tool-versions
mise install dummy@1.0.0 tiny@1.0.0 >/dev/null 2>&1 || fail "pre-install of dummy@1.0.0 failed"

output="$(MISE_FORCE_PROGRESS=1 mise up 2>&1)"
summary_line="  dummy 1.0.0 → 1.1.0"

if [[ $output != *"$summary_line"* ]]; then
  fail "upgrade summary did not include '$summary_line': $output"
fi

after_summary="${output#*"$summary_line"}"
if grep -q $'\033\\[[0-9;]*J' <<<"$after_summary"; then
  fail "upgrade summary was followed by a terminal clear sequence"
fi

# Lookup/install sessions leave the richer upgrade summary as the only success
# record. The one-time pruning hint stays out of captured output.
printf '%s' "$output" | python3 -c 'import re, sys; print(re.sub(r"\x1b\[[0-9;?]*[a-zA-Z]", "", sys.stdin.read()))' >output.log
assert_contains 'cat output.log' 'tiny 1.0.0 → 1.1.0'
assert_not_contains 'cat output.log' 'will be pruned after'
assert_not_contains 'cat output.log' 'automatic pruning'
assert_not_contains 'cat output.log' '✓ dummy'
assert_not_contains 'cat output.log' '✓ tiny'
assert_not_contains 'cat output.log' 'resolved 2 tools'
assert_not_contains 'cat output.log' 'installed 2 tools'
assert_not_contains 'cat output.log' 'dummy@1.0.0 will be pruned'
