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  }