code.gitea.io/gitea@v1.19.3/modules/git/foreachref/format_test.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package foreachref_test 5 6 import ( 7 "testing" 8 9 "code.gitea.io/gitea/modules/git/foreachref" 10 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestFormat_Flag(t *testing.T) { 15 tests := []struct { 16 name string 17 18 givenFormat foreachref.Format 19 20 wantFlag string 21 }{ 22 { 23 name: "references are delimited by dual null chars", 24 25 // no reference fields requested 26 givenFormat: foreachref.NewFormat(), 27 28 // only a reference delimiter field in --format 29 wantFlag: "%00%00", 30 }, 31 32 { 33 name: "a field is a space-separated key-value pair", 34 35 givenFormat: foreachref.NewFormat("refname:short"), 36 37 // only a reference delimiter field 38 wantFlag: "refname:short %(refname:short)%00%00", 39 }, 40 41 { 42 name: "fields are separated by a null char field-delimiter", 43 44 givenFormat: foreachref.NewFormat("refname:short", "author"), 45 46 wantFlag: "refname:short %(refname:short)%00author %(author)%00%00", 47 }, 48 49 { 50 name: "multiple fields", 51 52 givenFormat: foreachref.NewFormat("refname:short", "objecttype", "objectname"), 53 54 wantFlag: "refname:short %(refname:short)%00objecttype %(objecttype)%00objectname %(objectname)%00%00", 55 }, 56 } 57 58 for _, test := range tests { 59 tc := test // don't close over loop variable 60 t.Run(tc.name, func(t *testing.T) { 61 gotFlag := tc.givenFormat.Flag() 62 63 require.Equal(t, tc.wantFlag, gotFlag, "unexpected for-each-ref --format string. wanted: '%s', got: '%s'", tc.wantFlag, gotFlag) 64 }) 65 } 66 }