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