#!/bin/bash
## The tip line in STACK is optional: export always writes it, but a hand-made
## STACK without one must replay fine.  Verify then does everything except the
## tip comparison and says so; import simply skips its advisory comparison.
set -euo pipefail
cd "$(dirname "$0")"
source ./lib.sh

work=$(mktemp -d)
trap 'rm -rf "$work"' EXIT

make_corpus "$work/corpus"
source "$work/corpus/FACTS"

"$PATCHETTE" export "$work/corpus/dev" "$work/patches" "$base" topic/fancy >/dev/null
sed -i '/^tip /d' "$work/patches/topic¦fancy/STACK"

"$PATCHETTE" verify "$work/corpus/dev" "$work/patches" >"$work/verify.out"
EXPECT success "verify passes on a tipless STACK, noting it couldn't cross-check" -- \
	grep -q "records no tip to cross-check" "$work/verify.out"

git clone -q "$work/corpus/upstream" "$work/fresh"
"$PATCHETTE" import "$work/fresh" "$work/patches" >"$work/import.out"
EXPECT equal "import reproduces the branch from a tipless STACK" -- \
	"$(git -C "$work/fresh" rev-parse refs/heads/topic/fancy)" "$tip_topic_fancy"
EXPECT equal "import stays silent about tips it cannot compare" -- \
	"$(grep -c 'note' "$work/import.out")" "0"

exit "$RESULT"
