Passed
Push — main ( 6e8bbe...6c1cc7 )
by Acho
01:10
created

client.TestUsersService_MeWithInvalidJSONResponse   A

Complexity

Conditions 1

Size

Total Lines 17
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 8
nop 1
dl 0
loc 17
rs 10
c 0
b 0
f 0
1
package client
2
3
import (
4
	"context"
5
	"errors"
6
	"net/http"
7
	"strings"
8
	"testing"
9
10
	"github.com/NdoleStudio/lemonsqueezy-go/internal/helpers"
11
	"github.com/NdoleStudio/lemonsqueezy-go/internal/stubs"
12
	"github.com/stretchr/testify/assert"
13
)
14
15
func TestUsersService_Me(t *testing.T) {
16
	// Setup
17
	t.Parallel()
18
19
	// Arrange
20
	server := helpers.MakeTestServer(http.StatusOK, stubs.UsersMeResponse())
21
	client := New(WithBaseURL(server.URL))
22
23
	// Act
24
	user, response, err := client.Users.Me(context.Background())
25
26
	// Assert
27
	assert.Nil(t, err)
28
29
	assert.Equal(t, http.StatusOK, response.HTTPResponse.StatusCode)
30
	assert.Equal(t, stubs.UsersMeResponse(), *response.Body)
31
	assert.Equal(t, "[email protected]", user.Data.Attributes.Email)
32
33
	// Teardown
34
	server.Close()
35
}
36
37
func TestUsersService_MeWithError(t *testing.T) {
38
	// Setup
39
	t.Parallel()
40
41
	// Arrange
42
	server := helpers.MakeTestServer(http.StatusInternalServerError, nil)
43
	client := New(WithBaseURL(server.URL))
44
45
	// Act
46
	_, response, err := client.Users.Me(context.Background())
47
48
	// Assert
49
	assert.NotNil(t, err)
50
51
	assert.Equal(t, http.StatusInternalServerError, response.HTTPResponse.StatusCode)
52
53
	// Teardown
54
	server.Close()
55
}
56
57
func TestUsersService_MeCancelledContext(t *testing.T) {
58
	// Setup
59
	t.Parallel()
60
61
	// Arrange
62
	server := helpers.MakeTestServer(http.StatusInternalServerError, nil)
63
	client := New(WithBaseURL(server.URL))
64
	ctx, cancel := context.WithCancel(context.Background())
65
	cancel()
66
67
	// Act
68
	_, response, err := client.Users.Me(ctx)
69
70
	// Assert
71
	assert.NotNil(t, err)
72
	assert.Nil(t, response)
73
	assert.True(t, errors.Is(err, context.Canceled))
74
75
	// Teardown
76
	server.Close()
77
}
78
79
func TestUsersService_MeWithInvalidJSONResponse(t *testing.T) {
80
	// Setup
81
	t.Parallel()
82
83
	// Arrange
84
	server := helpers.MakeTestServer(http.StatusOK, []byte("invalid JSON response"))
85
	client := New(WithBaseURL(server.URL))
86
87
	// Act
88
	_, _, err := client.Users.Me(context.Background())
89
90
	// Assert
91
	assert.NotNil(t, err)
92
	assert.True(t, strings.Contains(err.Error(), "invalid character"))
93
94
	// Teardown
95
	server.Close()
96
}
97