From d8d7eaeb181cfaab7b49560abdcbbe9342428f07 Mon Sep 17 00:00:00 2001 From: Bryce Kwon Date: Tue, 15 Sep 2026 19:09:13 -1000 Subject: Add the link-trailers extension --- tests/t0506-link-trailers.sh | 70 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100755 tests/t0506-link-trailers.sh (limited to 'tests/t0506-link-trailers.sh') diff --git a/tests/t0506-link-trailers.sh b/tests/t0506-link-trailers.sh new file mode 100755 index 0000000..d397309 --- /dev/null +++ b/tests/t0506-link-trailers.sh @@ -0,0 +1,70 @@ +#!/bin/sh + +# Checks link-trailers.lua, the shipped trailer-filter, whose configuration as +# shipped links Fixes and Reverts object names to ./?id=, Closes and Bug marks +# to bugs.example.com and a bare URL to itself. The unit checks cover the rules +# under every suitable standalone Lua, and a commit carrying one of each is +# then rendered through cgit itself. + +test_description='Check the shipped link-trailers extension' +CGIT_TEST_NO_CREATE_REPOS=YesPlease +. ./setup.sh +. "$TEST_OUTPUT_DIRECTORY/extensions/lib.sh" + +interpreters=$(ext_lua_interpreters 4) +test -z "$interpreters" && + say 'no standalone lua on the path, unit checks skipped' + +for lua in $interpreters +do + test_expect_success "unit checks under $lua" " + '$lua' '$EXT_TEST_DIRECTORY/test-link-trailers.lua' '$EXTENSIONS_DIRECTORY/link-trailers.lua' + " +done + +test "$CGIT_HAS_LUA" -eq 1 && test_set_prereq CGIT_LUA +test "$CGIT_HAS_LUA" -eq 1 || + say 'cgit built without lua, filter checks through cgit skipped' + +test_expect_success 'create a repository whose commit carries linkable trailers' ' + test_create_repo repos/linky && + ( + cd repos/linky && + echo content >file && + git add file && + git commit -F - <<-\EOF + fix it + + Fixes: 1234567 ("earlier") + Link: https://example.com/?a=1&b=2 + Closes: #45 + EOF + ) +' + +test_expect_success 'point cgit at it through the trailer filter' ' + cat >cgitrc <<-EOF + virtual-root=/ + cache-size=0 + enable-trailers=1 + enable-filter-overrides=1 + repo.url=linky + repo.path=$PWD/repos/linky/.git + repo.trailer-filter=lua:$EXTENSIONS_DIRECTORY/link-trailers.lua + EOF +' + +test_expect_success CGIT_LUA 'the Fixes object name links to its commit page' ' + cgit_url "linky/commit/" >tmp && + grep "Fixes1234567 (.earlier.)" tmp +' + +test_expect_success CGIT_LUA 'the bare URL links to itself' ' + grep "https://example.com/?a=1&b=2" tmp +' + +test_expect_success CGIT_LUA 'the Closes mark links out' ' + grep "bugs.example.com/?bug=45.>#45" tmp +' + +test_done -- cgit v2.8.0