#!/bin/sh # Checks link-commits.lua, the shipped commit-filter, whose configuration as # shipped links bare object names to ./?id= and issue marks like #123 to # bugs.example.com. The unit checks cover the matching rules under every # suitable standalone Lua, and a commit whose message carries one of each is # then rendered through cgit itself. test_description='Check the shipped link-commits 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-commits.lua' \ '$EXTENSIONS_DIRECTORY/link-commits.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 message holds matches' ' test_create_repo repos/linky && ( cd repos/linky && echo content >file && git add file && git commit -m "fix #123 near deadbeefcafe1234" ) ' test_expect_success 'point cgit at it through the commit filter' ' cat >cgitrc <<-EOF virtual-root=/ cache-size=0 enable-filter-overrides=1 repo.url=linky repo.path=$PWD/repos/linky/.git repo.commit-filter=lua:$EXTENSIONS_DIRECTORY/link-commits.lua EOF ' test_expect_success CGIT_LUA 'the issue mark links out on the commit page' ' cgit_url "linky/commit/" >tmp && grep "bugs.example.com/?bug=123.>#123" tmp ' test_expect_success CGIT_LUA 'the object name links to its own page' ' grep "id=deadbeefcafe1234.>deadbeefcafe1234" tmp ' test_done