github.com/argoproj/argo-cd/v3@v3.2.1/pkg/apiclient/apiclient_test.go (about) 1 package apiclient 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func Test_parseHeaders(t *testing.T) { 11 t.Run("Header parsed successfully", func(t *testing.T) { 12 headerString := []string{"foo:", "foo1:bar1", "foo2:bar2:bar2"} 13 headers, err := parseHeaders(headerString) 14 require.NoError(t, err) 15 assert.Empty(t, headers.Get("foo")) 16 assert.Equal(t, "bar1", headers.Get("foo1")) 17 assert.Equal(t, "bar2:bar2", headers.Get("foo2")) 18 }) 19 20 t.Run("Header parsed error", func(t *testing.T) { 21 headerString := []string{"foo"} 22 _, err := parseHeaders(headerString) 23 assert.ErrorContains(t, err, "additional headers must be colon(:)-separated: foo") 24 }) 25 } 26 27 func Test_parseGRPCHeaders(t *testing.T) { 28 t.Run("Header parsed successfully", func(t *testing.T) { 29 headerStrings := []string{"origin: https://foo.bar", "content-length: 123"} 30 headers, err := parseGRPCHeaders(headerStrings) 31 require.NoError(t, err) 32 assert.Equal(t, []string{" https://foo.bar"}, headers.Get("origin")) 33 assert.Equal(t, []string{" 123"}, headers.Get("content-length")) 34 }) 35 36 t.Run("Header parsed error", func(t *testing.T) { 37 headerString := []string{"foo"} 38 _, err := parseGRPCHeaders(headerString) 39 assert.ErrorContains(t, err, "additional headers must be colon(:)-separated: foo") 40 }) 41 }