Skip to content

Commit e2ec3dd

Browse files
committed
Fix
1 parent 4f93bd7 commit e2ec3dd

File tree

2 files changed

+73
-11
lines changed

2 files changed

+73
-11
lines changed

components/usage/pkg/apiv1/billing.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,10 @@ func (s *BillingService) OnChargeDispute(ctx context.Context, req *v1.OnChargeDi
490490
}
491491
}
492492

493+
if len(errs) > 0 {
494+
return nil, status.Errorf(codes.Internal, "failed to block users: %v", errs)
495+
}
496+
493497
return &v1.OnChargeDisputeResponse{}, nil
494498
}
495499

components/usage/pkg/apiv1/billing_test.go

Lines changed: 69 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/bufbuild/connect-go"
1414
db "github.com/gitpod-io/gitpod/components/gitpod-db/go"
1515
"github.com/gitpod-io/gitpod/components/gitpod-db/go/dbtest"
16+
experimental_v1 "github.com/gitpod-io/gitpod/components/public-api/go/experimental/v1"
1617
"github.com/gitpod-io/gitpod/components/public-api/go/experimental/v1/v1connect"
1718
v1 "github.com/gitpod-io/gitpod/usage-api/v1"
1819
"github.com/gitpod-io/gitpod/usage/pkg/stripe"
@@ -32,15 +33,19 @@ func TestBillingService_OnChargeDispute(t *testing.T) {
3233
}, client)
3334
require.NoError(t, err)
3435

36+
stubUserService := &StubUserService{}
3537
svc := &BillingService{
3638
stripeClient: stripeClient,
39+
teamsService: &StubTeamsService{},
40+
userService: stubUserService,
3741
}
3842

39-
resp, err := svc.OnChargeDispute(context.Background(), &v1.OnChargeDisputeRequest{
43+
_, err = svc.OnChargeDispute(context.Background(), &v1.OnChargeDisputeRequest{
4044
DisputeId: "dp_1MrLJpAyBDPbWrhawbWHEIDL",
4145
})
42-
fmt.Println(resp)
4346
require.NoError(t, err)
47+
48+
require.Equal(t, stubUserService.blockedUsers, []string{"owner_id"})
4449
}
4550

4651
func NewStripeRecorder(t *testing.T, name string) *recorder.Recorder {
@@ -68,33 +73,86 @@ func NewStripeRecorder(t *testing.T, name string) *recorder.Recorder {
6873
}
6974

7075
type StubTeamsService struct {
71-
t *testing.T
7276
v1connect.TeamsServiceClient
7377
}
7478

75-
func (s *StubTeamsService) CreateTeam(context.Context, *connect.Request[v1.CreateTeamRequest]) (*connect.Response[v1.CreateTeamResponse], error) {
79+
func (s *StubTeamsService) CreateTeam(context.Context, *connect.Request[experimental_v1.CreateTeamRequest]) (*connect.Response[experimental_v1.CreateTeamResponse], error) {
80+
return nil, nil
81+
}
82+
83+
func (s *StubTeamsService) GetTeam(ctx context.Context, req *connect.Request[experimental_v1.GetTeamRequest]) (*connect.Response[experimental_v1.GetTeamResponse], error) {
84+
// generate a stub which returns a team
85+
team := &experimental_v1.Team{
86+
Id: req.Msg.GetTeamId(),
87+
Members: []*experimental_v1.TeamMember{
88+
{
89+
UserId: "owner_id",
90+
Role: experimental_v1.TeamRole_TEAM_ROLE_OWNER,
91+
},
92+
{
93+
UserId: "non_owner_id",
94+
Role: experimental_v1.TeamRole_TEAM_ROLE_MEMBER,
95+
},
96+
},
97+
}
7698

99+
return connect.NewResponse(&experimental_v1.GetTeamResponse{
100+
Team: team,
101+
}), nil
77102
}
78-
func (s *StubTeamsService) GetTeam(context.Context, *connect.Request[v1.GetTeamRequest]) (*connect.Response[v1.GetTeamResponse], error) {
79103

104+
func (s *StubTeamsService) ListTeams(context.Context, *connect.Request[experimental_v1.ListTeamsRequest]) (*connect.Response[experimental_v1.ListTeamsResponse], error) {
105+
return nil, nil
106+
}
107+
func (s *StubTeamsService) DeleteTeam(context.Context, *connect.Request[experimental_v1.DeleteTeamRequest]) (*connect.Response[experimental_v1.DeleteTeamResponse], error) {
108+
return nil, nil
109+
}
110+
func (s *StubTeamsService) JoinTeam(context.Context, *connect.Request[experimental_v1.JoinTeamRequest]) (*connect.Response[experimental_v1.JoinTeamResponse], error) {
111+
return nil, nil
112+
}
113+
func (s *StubTeamsService) ResetTeamInvitation(context.Context, *connect.Request[experimental_v1.ResetTeamInvitationRequest]) (*connect.Response[experimental_v1.ResetTeamInvitationResponse], error) {
114+
return nil, nil
115+
}
116+
func (s *StubTeamsService) UpdateTeamMember(context.Context, *connect.Request[experimental_v1.UpdateTeamMemberRequest]) (*connect.Response[experimental_v1.UpdateTeamMemberResponse], error) {
117+
return nil, nil
118+
}
119+
func (s *StubTeamsService) DeleteTeamMember(context.Context, *connect.Request[experimental_v1.DeleteTeamMemberRequest]) (*connect.Response[experimental_v1.DeleteTeamMemberResponse], error) {
120+
return nil, nil
80121
}
81-
func (s *StubTeamsService) ListTeams(context.Context, *connect.Request[v1.ListTeamsRequest]) (*connect.Response[v1.ListTeamsResponse], error) {
82122

123+
type StubUserService struct {
124+
blockedUsers []string
83125
}
84-
func (s *StubTeamsService) DeleteTeam(context.Context, *connect.Request[v1.DeleteTeamRequest]) (*connect.Response[v1.DeleteTeamResponse], error) {
85126

127+
func (s *StubUserService) GetAuthenticatedUser(context.Context, *connect.Request[experimental_v1.GetAuthenticatedUserRequest]) (*connect.Response[experimental_v1.GetAuthenticatedUserResponse], error) {
128+
return nil, nil
86129
}
87-
func (s *StubTeamsService) JoinTeam(context.Context, *connect.Request[v1.JoinTeamRequest]) (*connect.Response[v1.JoinTeamResponse], error) {
88130

131+
// ListSSHKeys lists the public SSH keys.
132+
func (s *StubUserService) ListSSHKeys(context.Context, *connect.Request[experimental_v1.ListSSHKeysRequest]) (*connect.Response[experimental_v1.ListSSHKeysResponse], error) {
133+
return nil, nil
89134
}
90-
func (s *StubTeamsService) ResetTeamInvitation(context.Context, *connect.Request[v1.ResetTeamInvitationRequest]) (*connect.Response[v1.ResetTeamInvitationResponse], error) {
91135

136+
// CreateSSHKey adds a public SSH key.
137+
func (s *StubUserService) CreateSSHKey(context.Context, *connect.Request[experimental_v1.CreateSSHKeyRequest]) (*connect.Response[experimental_v1.CreateSSHKeyResponse], error) {
138+
return nil, nil
92139
}
93-
func (s *StubTeamsService) UpdateTeamMember(context.Context, *connect.Request[v1.UpdateTeamMemberRequest]) (*connect.Response[v1.UpdateTeamMemberResponse], error) {
94140

141+
// GetSSHKey retrieves an ssh key by ID.
142+
func (s *StubUserService) GetSSHKey(context.Context, *connect.Request[experimental_v1.GetSSHKeyRequest]) (*connect.Response[experimental_v1.GetSSHKeyResponse], error) {
143+
return nil, nil
95144
}
96-
func (s *StubTeamsService) DeleteTeamMember(context.Context, *connect.Request[v1.DeleteTeamMemberRequest]) (*connect.Response[v1.DeleteTeamMemberResponse], error) {
97145

146+
// DeleteSSHKey removes a public SSH key.
147+
func (s *StubUserService) DeleteSSHKey(context.Context, *connect.Request[experimental_v1.DeleteSSHKeyRequest]) (*connect.Response[experimental_v1.DeleteSSHKeyResponse], error) {
148+
return nil, nil
149+
}
150+
func (s *StubUserService) GetGitToken(context.Context, *connect.Request[experimental_v1.GetGitTokenRequest]) (*connect.Response[experimental_v1.GetGitTokenResponse], error) {
151+
return nil, nil
152+
}
153+
func (s *StubUserService) BlockUser(ctx context.Context, req *connect.Request[experimental_v1.BlockUserRequest]) (*connect.Response[experimental_v1.BlockUserResponse], error) {
154+
s.blockedUsers = append(s.blockedUsers, req.Msg.GetUserId())
155+
return connect.NewResponse(&experimental_v1.BlockUserResponse{}), nil
98156
}
99157

100158
func TestBalancesForStripeCostCenters(t *testing.T) {

0 commit comments

Comments
 (0)