...

Source file src/edge-infra.dev/pkg/edge/api/client/options_test.go

Documentation: edge-infra.dev/pkg/edge/api/client

     1  package client
     2  
     3  import (
     4  	"net/http"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/shurcooL/graphql"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestWithGraphqlClient(t *testing.T) {
    13  	url := "https://test.edge-preprod.dev/api/v2"
    14  	qlcl := graphql.NewClient(url, http.DefaultClient)
    15  	cl, err := New(WithGraphqlClient(qlcl))
    16  	assert.NoError(t, err)
    17  	assert.NotEmpty(t, cl)
    18  	assert.Equal(t, qlcl, cl.Client)
    19  }
    20  
    21  func TestWithHTTPClient(t *testing.T) {
    22  	customcl := &http.Client{
    23  		Timeout: 2 * time.Hour,
    24  	}
    25  	cl, err := New(WithHTTPClient(customcl))
    26  	assert.NoError(t, err)
    27  	assert.NotEmpty(t, cl)
    28  	assert.Equal(t, customcl.Timeout, cl.HTTPClient.Timeout)
    29  }
    30  
    31  func TestWithUserAgent(t *testing.T) {
    32  	userAgent := "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"
    33  	cl, err := New(WithUserAgent(userAgent))
    34  	assert.NoError(t, err)
    35  	assert.NotEmpty(t, cl)
    36  	assert.Equal(t, userAgent, cl.userAgent)
    37  }
    38  
    39  func TestWithVersion(t *testing.T) {
    40  	version := "dev"
    41  	cl, err := New(WithVersion(version))
    42  	assert.NoError(t, err)
    43  	assert.NotEmpty(t, cl)
    44  	assert.Equal(t, version, cl.version)
    45  }
    46  
    47  func TestWithBaseURL(t *testing.T) {
    48  	url := "https://test.edge-preprod.dev/api/v2"
    49  	cl, err := New(WithBaseURL(url))
    50  	assert.NoError(t, err)
    51  	assert.NotEmpty(t, cl)
    52  	assert.Equal(t, url, cl.BaseURL.String())
    53  }
    54  
    55  func TestWithTotp(t *testing.T) {
    56  	totpToken := "the-special-totp-token"
    57  	cl, err := New(WithTotp(totpToken))
    58  	assert.NoError(t, err)
    59  	assert.NotEmpty(t, cl)
    60  	assert.Equal(t, totpToken, cl.totpToken)
    61  }
    62  
    63  func TestWithBearerToken(t *testing.T) {
    64  	token := "the-special-token"
    65  	cl, err := New(WithBearerToken(token))
    66  	assert.NoError(t, err)
    67  	assert.NotEmpty(t, cl)
    68  	assert.Equal(t, token, cl.bearerToken)
    69  }
    70  
    71  func TestWithCredentials(t *testing.T) {
    72  	loginCredentials := &LoginRequest{
    73  		Username:     "johndoe",
    74  		Password:     "johndoe",
    75  		Organization: "test-org",
    76  	}
    77  	creds := WithCredentials(loginCredentials.Username, loginCredentials.Password, loginCredentials.Organization)
    78  	cl, err := New()
    79  	assert.NoError(t, err)
    80  	assert.NotEmpty(t, cl)
    81  	creds(cl)
    82  	assert.Equal(t, loginCredentials, cl.loginCredentials)
    83  }
    84  
    85  func TestWithTimeout(t *testing.T) {
    86  	timeout := 2 * time.Minute
    87  	cl, err := New(WithTimeout(timeout))
    88  	assert.NoError(t, err)
    89  	assert.NotEmpty(t, cl)
    90  	assert.Equal(t, timeout, cl.timeout)
    91  }
    92  

View as plain text