github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/teams/seitan_common_test.go (about) 1 package teams 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 8 "github.com/keybase/client/go/kbtest" 9 "github.com/keybase/client/go/protocol/keybase1" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func testTeamCreateSeitanAndCancel(t *testing.T, seitanVersion SeitanVersion) { 14 tc := SetupTest(t, "team", 1) 15 defer tc.Cleanup() 16 17 user, err := kbtest.CreateAndSignupFakeUser("team", tc.G) 18 require.NoError(t, err) 19 20 teamName, teamID := createTeam2(tc) 21 22 t.Logf("Created team %q", teamName.String()) 23 24 var labelSms keybase1.SeitanKeyLabelSms 25 labelSms.F = "Patricia S. Goldman-Rakic" 26 labelSms.N = "+481II222333" 27 label := keybase1.NewSeitanKeyLabelWithSms(labelSms) 28 29 switch seitanVersion { 30 case SeitanVersion1: 31 _, err = CreateSeitanToken(context.TODO(), tc.G, teamName.String(), keybase1.TeamRole_WRITER, label) 32 case SeitanVersion2: 33 _, err = CreateSeitanTokenV2(context.TODO(), tc.G, teamName.String(), keybase1.TeamRole_WRITER, label) 34 default: 35 t.Logf("Invalid seitan version %v", seitanVersion) 36 t.FailNow() 37 } 38 require.NoError(t, err) 39 40 t.Logf("Created Seitan token") 41 42 details, err := Details(context.TODO(), tc.G, teamName.String()) 43 require.NoError(t, err) 44 45 var inviteID keybase1.TeamInviteID 46 47 require.Equal(t, 1, len(details.AnnotatedActiveInvites)) 48 for key, aInvite := range details.AnnotatedActiveInvites { 49 invite := aInvite.InviteMetadata.Invite 50 require.Equal(t, keybase1.TeamRole_WRITER, invite.Role) 51 require.EqualValues(t, fmt.Sprintf("%s (%s)", labelSms.F, labelSms.N), aInvite.DisplayName) 52 53 category, err := invite.Type.C() 54 require.NoError(t, err) 55 require.Equal(t, keybase1.TeamInviteCategory_SEITAN, category) 56 57 // Test rest of the params, unrelated to Seitan. 58 require.Equal(t, key, invite.Id) 59 require.Equal(t, user.GetUserVersion(), invite.Inviter) 60 require.Equal(t, user.Username, aInvite.InviterUsername) 61 require.Equal(t, teamName.String(), aInvite.TeamName) 62 63 inviteID = invite.Id 64 } 65 66 t.Logf("Checked that invite was added correctly, removing invite by id") 67 68 err = CancelInviteByID(context.TODO(), tc.G, teamID, inviteID) 69 require.NoError(t, err) 70 71 t.Logf("Removed, checking if there are no active invites") 72 73 t0, err := GetTeamByNameForTest(context.TODO(), tc.G, teamName.String(), false /* public */, true /* needAdmin */) 74 require.NoError(t, err) 75 require.Equal(t, 0, t0.NumActiveInvites()) 76 } 77 78 func TestTeamCreateSeitanAndCancel(t *testing.T) { 79 testTeamCreateSeitanAndCancel(t, SeitanVersion1) 80 testTeamCreateSeitanAndCancel(t, SeitanVersion2) 81 }