/
contacts-grpc_test.go
97 lines (77 loc) · 2.37 KB
/
contacts-grpc_test.go
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package goautowp
import (
"context"
"testing"
"github.com/Nerzal/gocloak/v13"
"github.com/autowp/goautowp/config"
"github.com/autowp/goautowp/util"
"github.com/stretchr/testify/require"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/metadata"
)
func TestCreateDeleteContact(t *testing.T) {
t.Parallel()
ctx := context.Background()
conn, err := grpc.NewClient(
"localhost",
grpc.WithContextDialer(bufDialer),
grpc.WithTransportCredentials(insecure.NewCredentials()),
)
require.NoError(t, err)
defer util.Close(conn)
client := NewContactsClient(conn)
cfg := config.LoadConfig(".")
// cnt := NewContainer(cfg)
// defer util.Close(cnt)
kc := gocloak.NewClient(cfg.Keycloak.URL)
usersClient := NewUsersClient(conn)
// admin
adminToken, err := kc.Login(ctx, "frontend", "", cfg.Keycloak.Realm, adminUsername, adminPassword)
require.NoError(t, err)
require.NotNil(t, adminToken)
// tester
testerToken, err := kc.Login(ctx, "frontend", "", cfg.Keycloak.Realm, testUsername, testPassword)
require.NoError(t, err)
require.NotNil(t, testerToken)
// tester (me)
tester, err := usersClient.Me(
metadata.AppendToOutgoingContext(ctx, authorizationHeader, bearerPrefix+testerToken.AccessToken),
&APIMeRequest{},
)
require.NoError(t, err)
// create
_, err = client.CreateContact(
metadata.AppendToOutgoingContext(ctx, authorizationHeader, bearerPrefix+adminToken.AccessToken),
&CreateContactRequest{UserId: tester.Id},
)
require.NoError(t, err)
// get contact
_, err = client.GetContact(
metadata.AppendToOutgoingContext(ctx, authorizationHeader, bearerPrefix+adminToken.AccessToken),
&GetContactRequest{UserId: tester.Id},
)
require.NoError(t, err)
// get contacts
items, err := client.GetContacts(
metadata.AppendToOutgoingContext(ctx, authorizationHeader, bearerPrefix+adminToken.AccessToken),
&GetContactsRequest{},
)
require.NoError(t, err)
require.NotEmpty(t, items)
var contactUser *Contact
for _, i := range items.Items {
if i.ContactUserId == tester.Id {
contactUser = i
break
}
}
require.NotNil(t, contactUser)
require.NotEmpty(t, contactUser.GetUser().GetGravatar())
// delete
_, err = client.DeleteContact(
metadata.AppendToOutgoingContext(ctx, authorizationHeader, bearerPrefix+adminToken.AccessToken),
&DeleteContactRequest{UserId: tester.Id},
)
require.NoError(t, err)
}