-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclient_test.go
More file actions
70 lines (56 loc) · 1.37 KB
/
client_test.go
File metadata and controls
70 lines (56 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package lever
import (
"context"
"io"
"net/http"
"testing"
"github.com/corbaltcode/lever-data-api-go/internal/testclient"
"github.com/stretchr/testify/assert"
)
const testApiKey = "EXAMPLE_API_KEY"
type testRequest struct {
BaseRequest
path string `json:"-"`
method string `json:"-"`
}
func (tr *testRequest) GetPath() string {
if tr.path == "" {
return "req_path"
}
return tr.path
}
func (tr *testRequest) GetHTTPMethod() string {
if tr.method == "" {
return http.MethodGet
}
return tr.method
}
func (tr *testRequest) GetBody() (io.Reader, error) {
return nil, nil
}
type testResponse struct {
BaseResponse
}
func TestClientOptions(t *testing.T) {
s := testclient.NewExpectManyHandler(
testclient.NewExpectHandler(
http.StatusOK,
`{}`,
testclient.ExpectMethod(http.MethodGet),
testclient.ExpectPath("/custom_path/req_path"),
testclient.ExpectHeader("Authorization", "Basic RVhBTVBMRV9BUElfS0VZOg=="),
testclient.ExpectHeader("User-Agent", "TestClient"),
),
)
httpClient := http.Client{
Transport: s,
}
c := NewClient(WithHTTPClient(&httpClient), WithBaseURL("http://localhost/custom_path"), WithAPIKey(testApiKey), WithUserAgent("TestClient"))
ctx := context.Background()
ta := assert.New(t)
// Make a request with the custom path.
req := testRequest{}
resp := testResponse{}
err := c.exec(ctx, &req, &resp)
ta.NoError(err)
}