test(open-pr): add test for rolling PR branch updates
This commit is contained in:
parent
f1a682850f
commit
0fd70e257b
1 changed files with 48 additions and 0 deletions
48
tests/open-pr-rolling.bats
Normal file
48
tests/open-pr-rolling.bats
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#!/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"
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue