MCPcopy Create free account
hub / github.com/bytebase/bytebase / TestDeleteUser

Function TestDeleteUser

backend/tests/user_test.go:19–126  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

17)
18
19func TestDeleteUser(t *testing.T) {
20 a := require.New(t)
21 ctx := context.Background()
22 ctl := &controller{}
23 ctx, err := ctl.StartServerWithExternalPg(ctx)
24 a.NoError(err)
25 defer ctl.Close(ctx)
26
27 expectErrorMsg := "workspace must have at least one admin"
28
29 memberResp, err := ctl.userServiceClient.CreateUser(ctx, connect.NewRequest(&v1pb.CreateUserRequest{
30 User: &v1pb.User{
31 Title: "member",
32 Email: "member@bytebase.com",
33 Password: "1024bytebase",
34 },
35 }))
36 a.NoError(err)
37 member := memberResp.Msg
38
39 _, err = ctl.userServiceClient.DeleteUser(ctx, connect.NewRequest(&v1pb.DeleteUserRequest{
40 Name: member.Name,
41 }))
42 a.NoError(err)
43
44 // Test: cannot delete the last admin.
45 _, err = ctl.userServiceClient.DeleteUser(ctx, connect.NewRequest(&v1pb.DeleteUserRequest{
46 Name: ctl.principalName,
47 }))
48 a.Error(err)
49 a.ErrorContains(err, expectErrorMsg)
50
51 actuator, err := ctl.actuatorServiceClient.GetActuatorInfo(ctx, connect.NewRequest(&v1pb.GetActuatorInfoRequest{
52 Name: memberResp.Msg.Workspace,
53 }))
54 a.NoError(err)
55
56 serviceAccountResp, err := ctl.serviceAccountServiceClient.CreateServiceAccount(ctx, connect.NewRequest(&v1pb.CreateServiceAccountRequest{
57 Parent: actuator.Msg.Workspace,
58 ServiceAccountId: "bot",
59 ServiceAccount: &v1pb.ServiceAccount{
60 Title: "bot",
61 },
62 }))
63 a.NoError(err)
64 serviceAccount := serviceAccountResp.Msg
65
66 _, err = ctl.addMemberToWorkspaceIAM(ctx, actuator.Msg.Workspace, fmt.Sprintf("serviceAccount:%v", serviceAccount.Email), "roles/workspaceAdmin")
67 a.NoError(err)
68
69 _, err = ctl.userServiceClient.DeleteUser(ctx, connect.NewRequest(&v1pb.DeleteUserRequest{
70 Name: ctl.principalName,
71 }))
72 a.Error(err)
73 a.ErrorContains(err, expectErrorMsg)
74
75 _, err = ctl.userServiceClient.UndeleteUser(ctx, connect.NewRequest(&v1pb.UndeleteUserRequest{
76 Name: member.Name,

Callers

nothing calls this directly

Calls 11

CloseMethod · 0.95
CreateUserMethod · 0.65
DeleteUserMethod · 0.65
GetActuatorInfoMethod · 0.65
CreateServiceAccountMethod · 0.65
UndeleteUserMethod · 0.65
LoginMethod · 0.65
SetIamPolicyMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected