48 lines
2.2 KiB
Bash
48 lines
2.2 KiB
Bash
#!/usr/bin/env bats
|
|
# open-pr-rolling.bats — a re-ingest of the same slug updates the OPEN PR's branch
|
|
# (force-with-lease) instead of failing. Uses the local bare remote from make_fixture_genome.
|
|
load helpers
|
|
setup_file() { :; }
|
|
|
|
@test "open-pr: re-ingest of the same slug rolls the branch forward (force-with-lease)" {
|
|
command -v jq >/dev/null 2>&1 || skip "jq not installed"
|
|
G="$(make_fixture_genome)"; cd "$G"
|
|
export FORGEJO_URL="http://forgejo.local" FORGEJO_USER=u FORGEJO_TOKEN=t DRY_RUN=1
|
|
body="$(mktemp)"; echo body > "$body"
|
|
|
|
# first ingest of slug x (v1)
|
|
mkdir -p wiki/sources; printf 'v1\n' > wiki/sources/x.md
|
|
run bash "$SKILL_SCRIPTS/open-pr.sh" --slug x --title "feat: ingest x" --body-file "$body" --base main
|
|
[ "$status" -eq 0 ]
|
|
git rev-parse --verify feat/ai-ingest-x
|
|
first="$(git rev-parse feat/ai-ingest-x)"
|
|
|
|
# simulate clean_start back to base, then an edited re-ingest (v2)
|
|
git switch -q main; git reset -q --hard origin/main; git clean -q -fd
|
|
printf 'v2-edited\n' > wiki/sources/x.md
|
|
run bash "$SKILL_SCRIPTS/open-pr.sh" --slug x --title "feat: ingest x" --body-file "$body" --base main
|
|
[ "$status" -eq 0 ]
|
|
second="$(git rev-parse feat/ai-ingest-x)"
|
|
|
|
# the branch was REBUILT from base (diverged), not appended: second is not a descendant of first
|
|
run git merge-base --is-ancestor "$first" "$second"
|
|
[ "$status" -ne 0 ]
|
|
|
|
# origin received the v2 content (force-with-lease pushed the rebuilt branch)
|
|
git fetch -q origin
|
|
run git show "origin/feat/ai-ingest-x:wiki/sources/x.md"
|
|
[ "$status" -eq 0 ]
|
|
[[ "$output" == *"v2-edited"* ]]
|
|
}
|
|
|
|
@test "open-pr: prune branch override still works after the rolling change" {
|
|
command -v jq >/dev/null 2>&1 || skip "jq not installed"
|
|
G="$(make_fixture_genome)"; cd "$G"
|
|
export FORGEJO_URL="http://forgejo.local" FORGEJO_USER=u FORGEJO_TOKEN=t DRY_RUN=1
|
|
body="$(mktemp)"; echo body > "$body"
|
|
mkdir -p wiki/sources; printf 'p\n' > wiki/sources/p.md
|
|
run bash "$SKILL_SCRIPTS/open-pr.sh" --branch "chore/prune-orphans-2026-06-30" \
|
|
--title "chore: prune 1 orphaned source(s)" --body-file "$body" --base main
|
|
[ "$status" -eq 0 ]
|
|
git rev-parse --verify "chore/prune-orphans-2026-06-30"
|
|
}
|