@@ -814,53 +814,57 @@ test_expect_success 'set up trailers for next test' '
814814 EOF
815815'
816816
817- test_expect_success ' %(trailers:unfold) unfolds trailers ' '
818- {
819- unfold <trailers
820- echo
821- } >expect &&
822- git for-each-ref --format="%(trailers:unfold)" refs/heads/main > actual &&
823- test_cmp expect actual &&
824- git for-each-ref --format="%(contents:trailers:unfold)" refs/heads/main > actual &&
825- test_cmp expect actual
826- '
817+ test_trailer_option () {
818+ title= $1 option= $2
819+ cat > expect
820+ test_expect_success " $title " '
821+ git for-each-ref --format="%($option)" refs/heads/main >actual &&
822+ test_cmp expect actual &&
823+ git for-each-ref --format="%(contents:$option)" refs/heads/main > actual &&
824+ test_cmp expect actual
825+ '
826+ }
827827
828- test_expect_success ' %(trailers:only) shows only "key: value" trailers' '
829- {
830- grep -v patch.description <trailers &&
831- echo
832- } >expect &&
833- git for-each-ref --format="%(trailers:only)" refs/heads/main >actual &&
834- test_cmp expect actual &&
835- git for-each-ref --format="%(contents:trailers:only)" refs/heads/main >actual &&
836- test_cmp expect actual
837- '
828+ test_trailer_option ' %(trailers:unfold) unfolds trailers' \
829+ ' trailers:unfold' << -EOF
830+ $( unfold < trailers)
838831
839- test_expect_success ' %(trailers:only) and %(trailers:unfold) work together' '
840- {
841- grep -v patch.description <trailers | unfold &&
842- echo
843- } >expect &&
844- git for-each-ref --format="%(trailers:only,unfold)" refs/heads/main >actual &&
845- test_cmp expect actual &&
846- git for-each-ref --format="%(trailers:unfold,only)" refs/heads/main >actual &&
847- test_cmp actual actual &&
848- git for-each-ref --format="%(contents:trailers:only,unfold)" refs/heads/main >actual &&
849- test_cmp expect actual &&
850- git for-each-ref --format="%(contents:trailers:unfold,only)" refs/heads/main >actual &&
851- test_cmp actual actual
852- '
853-
854- test_expect_success ' %(trailers) rejects unknown trailers arguments' '
855- # error message cannot be checked under i18n
856- cat >expect <<-EOF &&
832+ EOF
833+
834+ test_trailer_option ' %(trailers:only) shows only "key: value" trailers' \
835+ ' trailers:only' << -EOF
836+ $( grep -v patch.description < trailers)
837+
838+ EOF
839+
840+ test_trailer_option ' %(trailers:only) and %(trailers:unfold) work together' \
841+ ' trailers:only,unfold' << -EOF
842+ $( grep -v patch.description < trailers | unfold)
843+
844+ EOF
845+
846+ test_trailer_option ' %(trailers:unfold) and %(trailers:only) work together' \
847+ ' trailers:unfold,only' << -EOF
848+ $( grep -v patch.description < trailers | unfold)
849+
850+ EOF
851+
852+ test_failing_trailer_option () {
853+ title=$1 option=$2
854+ cat > expect
855+ test_expect_success " $title " '
856+ # error message cannot be checked under i18n
857+ test_must_fail git for-each-ref --format="%($option)" refs/heads/main 2>actual &&
858+ test_i18ncmp expect actual &&
859+ test_must_fail git for-each-ref --format="%(contents:$option)" refs/heads/main 2>actual &&
860+ test_i18ncmp expect actual
861+ '
862+ }
863+
864+ test_failing_trailer_option ' %(trailers) rejects unknown trailers arguments' \
865+ ' trailers:unsupported' << -\EOF
857866 fatal: unknown %(trailers) argument: unsupported
858867 EOF
859- test_must_fail git for-each-ref --format="%(trailers:unsupported)" 2>actual &&
860- test_i18ncmp expect actual &&
861- test_must_fail git for-each-ref --format="%(contents:trailers:unsupported)" 2>actual &&
862- test_i18ncmp expect actual
863- '
864868
865869test_expect_success ' if arguments, %(contents:trailers) shows error if colon is missing' '
866870 cat >expect <<-EOF &&
0 commit comments