aboutsummaryrefslogtreecommitdiff
path: root/tests/t0106-diff.sh
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
authorGravatar Saya Andy <saya.andy@posteo.com> 2026-09-08 10:07:45 +0700
committerGravatar Saya Andy <saya.andy@posteo.com> 2026-09-08 10:07:45 +0700
commit60a59f650da76dd95f6c6221287b2745b7e44291 (patch)
treef73b532b4433be931e78df15197384d60b0c4670 /tests/t0106-diff.sh
parent3e40b846456e4efc06ece7180ef152e053114385 (diff)
downloadcgitext-1.3.1+17.tar.gz
cgitext-1.3.1+17.zip
diff: show the default from ref in the refs panelHEADv1.3.1+17masterdevelop
By default a diff against a ref is shown as that ref against its parent, but the refs panel left the from picker empty, so the controls described a different diff than the page showed. When no from ref is given, preselect the to ref with one extra commit back, which is the parent of the (stepped) to rev, and reuse the same values in the flip link.
Diffstat (limited to 'tests/t0106-diff.sh')
-rwxr-xr-xtests/t0106-diff.sh29
1 files changed, 27 insertions, 2 deletions
diff --git a/tests/t0106-diff.sh b/tests/t0106-diff.sh
index 0e45087..4490ecc 100755
--- a/tests/t0106-diff.sh
+++ b/tests/t0106-diff.sh
@@ -71,9 +71,17 @@ test_expect_success 'ref picker: to: shows master when id=master' '
grep "master" tmp
'
-test_expect_success 'ref picker: from: empty when no id2' '
+test_expect_success 'ref picker: from: preselects the to ref when no id2' '
cgit_query "url=foo/diff" >tmp &&
- grep "<select name=.id2." tmp
+ grep "<select name=.id2. onchange=.this.form.submit();.><option value=.master. selected=.selected.>master</option>" tmp
+'
+
+test_expect_success 'from offset: one back when no id2' '
+ grep "name=.id2off. title=.N commits back from the selected ref. value=.1.>" tmp
+'
+
+test_expect_success 'to offset: empty when idoff unset' '
+ grep "name=.idoff. title=.N commits back from the selected ref.>" tmp
'
test_expect_success 'compare initial commit with HEAD' '
@@ -145,4 +153,21 @@ test_expect_success 'flip link carries the offsets' '
grep "/foo/diff/?id2=master&amp;idoff=2&amp;id2off=1" tmp
'
+test_expect_success 'from ref: follows the stepped to ref' '
+ cgit_query "url=foo/diff&id=master&idoff=2" >tmp &&
+ grep "name=.id2off. title=.N commits back from the selected ref. value=.3.>" tmp &&
+ grep "name=.idoff. title=.N commits back from the selected ref. value=.2.>" tmp
+'
+
+test_expect_success 'from ref: shows the given offset' '
+ cgit_query "url=foo/diff&id=master&id2=master&id2off=2" >tmp &&
+ grep "name=.id2off. title=.N commits back from the selected ref. value=.2.>" tmp
+'
+
+test_expect_success 'from ref: empty when the to ref is the root' '
+ root=$(git --git-dir="$PWD/repos/foo/.git" rev-list --max-parents=0 HEAD) &&
+ cgit_query "url=foo/diff&id=$root" >tmp &&
+ grep "name=.id2off. title=.N commits back from the selected ref.>" tmp
+'
+
test_done