gitlab.com/jfprevost/gitlab-runner-notlscheck@v11.11.4+incompatible/helpers/docker/official_docker_client_test.go (about)

     1  package docker_helpers
     2  
     3  import (
     4  	"context"
     5  	"net/http"
     6  	"net/http/httptest"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func prepareDockerClientAndFakeServer(t *testing.T, handler http.HandlerFunc) (Client, *httptest.Server) {
    14  	server := httptest.NewServer(handler)
    15  
    16  	credentials := DockerCredentials{
    17  		Host:      server.URL,
    18  		TLSVerify: false,
    19  	}
    20  
    21  	client, err := New(credentials, "")
    22  	require.NoError(t, err)
    23  
    24  	return client, server
    25  }
    26  
    27  func TestWrapError(t *testing.T) {
    28  	client, server := prepareDockerClientAndFakeServer(t, func(w http.ResponseWriter, r *http.Request) {
    29  		w.WriteHeader(401)
    30  	})
    31  	defer server.Close()
    32  
    33  	ctx, cancel := context.WithCancel(context.Background())
    34  	defer cancel()
    35  
    36  	_, err := client.Info(ctx)
    37  	require.Error(t, err, "The request should respond with an error")
    38  	assert.Regexp(t, "\\(official_docker_client_test.go:\\d\\d:\\d+s\\)", err.Error())
    39  }
    40  
    41  func TestNew_Version(t *testing.T) {
    42  	cases := []struct {
    43  		version         string
    44  		host            string
    45  		expectedVersion string
    46  	}{
    47  		{
    48  			version:         "0.11",
    49  			expectedVersion: "0.11",
    50  		},
    51  		{
    52  			version:         "",
    53  			expectedVersion: DefaultAPIVersion,
    54  		},
    55  	}
    56  
    57  	for _, c := range cases {
    58  		t.Run(c.expectedVersion, func(t *testing.T) {
    59  			client, err := New(DockerCredentials{}, c.version)
    60  			require.NoError(t, err)
    61  
    62  			test, ok := client.(*officialDockerClient)
    63  			assert.True(t, ok)
    64  			assert.Equal(t, c.expectedVersion, test.client.ClientVersion())
    65  		})
    66  	}
    67  }