github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/store/storetest/team_store_test.go (about) 1 package storetest 2 3 import ( 4 "testing" 5 6 "github.com/masterhung0112/hk_server/v5/model" 7 "github.com/stretchr/testify/suite" 8 ) 9 10 // type TeamStoreTestSuite struct { 11 // suite.Suite 12 // StoreTestSuite 13 // } 14 15 func TestTeamStoreTestSuite(t *testing.T) { 16 StoreTestSuiteWithSqlSupplier(t, &TeamStoreTestSuite{}, func(t *testing.T, testSuite StoreTestBaseSuite) { 17 suite.Run(t, testSuite) 18 }) 19 } 20 21 // Each user should have a mention count of exactly 1 in the DB at this point. 22 func (s *TeamStoreTestSuite) TestGetMembersOrderByUserId() { 23 teamId1 := model.NewId() 24 teamId2 := model.NewId() 25 26 m1 := &model.TeamMember{TeamId: teamId1, UserId: "55555555555555555555555555"} 27 m2 := &model.TeamMember{TeamId: teamId1, UserId: "11111111111111111111111111"} 28 m3 := &model.TeamMember{TeamId: teamId1, UserId: "33333333333333333333333333"} 29 m4 := &model.TeamMember{TeamId: teamId1, UserId: "22222222222222222222222222"} 30 m5 := &model.TeamMember{TeamId: teamId1, UserId: "44444444444444444444444444"} 31 m6 := &model.TeamMember{TeamId: teamId2, UserId: "00000000000000000000000000"} 32 33 _, nErr := s.Store().Team().SaveMultipleMembers([]*model.TeamMember{m1, m2, m3, m4, m5, m6}, -1) 34 s.Require().Nil(nErr) 35 36 // Gets users ordered by UserId 37 ms, err := s.Store().Team().GetMembers(teamId1, 0, 100, nil) 38 s.Require().Nil(err) 39 s.Len(ms, 5) 40 s.Equal("11111111111111111111111111", ms[0].UserId) 41 s.Equal("22222222222222222222222222", ms[1].UserId) 42 s.Equal("33333333333333333333333333", ms[2].UserId) 43 s.Equal("44444444444444444444444444", ms[3].UserId) 44 s.Equal("55555555555555555555555555", ms[4].UserId) 45 } 46 47 func (s *TeamStoreTestSuite) TestGetMembersOrderByUsernameAndExcludeDeletedMembers() { 48 teamId1 := model.NewId() 49 teamId2 := model.NewId() 50 u1 := &model.User{Username: "a", Email: MakeEmail(), DeleteAt: int64(1)} 51 u2 := &model.User{Username: "c", Email: MakeEmail()} 52 u3 := &model.User{Username: "b", Email: MakeEmail(), DeleteAt: int64(1)} 53 u4 := &model.User{Username: "f", Email: MakeEmail()} 54 u5 := &model.User{Username: "e", Email: MakeEmail(), DeleteAt: int64(1)} 55 u6 := &model.User{Username: "d", Email: MakeEmail()} 56 u1, err := s.Store().User().Save(u1) 57 s.Require().Nil(err) 58 u2, err = s.Store().User().Save(u2) 59 s.Require().Nil(err) 60 u3, err = s.Store().User().Save(u3) 61 s.Require().Nil(err) 62 u4, err = s.Store().User().Save(u4) 63 s.Require().Nil(err) 64 u5, err = s.Store().User().Save(u5) 65 s.Require().Nil(err) 66 u6, err = s.Store().User().Save(u6) 67 s.Require().Nil(err) 68 m1 := &model.TeamMember{TeamId: teamId1, UserId: u1.Id} 69 m2 := &model.TeamMember{TeamId: teamId1, UserId: u2.Id} 70 m3 := &model.TeamMember{TeamId: teamId1, UserId: u3.Id} 71 m4 := &model.TeamMember{TeamId: teamId1, UserId: u4.Id} 72 m5 := &model.TeamMember{TeamId: teamId1, UserId: u5.Id} 73 m6 := &model.TeamMember{TeamId: teamId2, UserId: u6.Id} 74 _, nErr := s.Store().Team().SaveMultipleMembers([]*model.TeamMember{m1, m2, m3, m4, m5, m6}, -1) 75 s.Require().Nil(nErr) 76 // Gets users ordered by UserName 77 ms, err := s.Store().Team().GetMembers(teamId1, 0, 100, &model.TeamMembersGetOptions{Sort: model.USERNAME}) 78 s.Require().Nil(err) 79 s.Len(ms, 5) 80 s.Equal(u1.Id, ms[0].UserId) 81 s.Equal(u3.Id, ms[1].UserId) 82 s.Equal(u2.Id, ms[2].UserId) 83 s.Equal(u5.Id, ms[3].UserId) 84 s.Equal(u4.Id, ms[4].UserId) 85 // Gets users ordered by UserName and excludes deleted members 86 ms, err = s.Store().Team().GetMembers(teamId1, 0, 100, &model.TeamMembersGetOptions{Sort: model.USERNAME, ExcludeDeletedUsers: true}) 87 s.Require().Nil(err) 88 s.Len(ms, 2) 89 s.Equal(u2.Id, ms[0].UserId) 90 s.Equal(u4.Id, ms[1].UserId) 91 } 92 93 func (s *TeamStoreTestSuite) TestGetMembersExcludedDeletedUsers() { 94 teamId1 := model.NewId() 95 teamId2 := model.NewId() 96 97 u1 := &model.User{Email: MakeEmail()} 98 u2 := &model.User{Email: MakeEmail(), DeleteAt: int64(1)} 99 u3 := &model.User{Email: MakeEmail()} 100 u4 := &model.User{Email: MakeEmail(), DeleteAt: int64(3)} 101 u5 := &model.User{Email: MakeEmail()} 102 u6 := &model.User{Email: MakeEmail(), DeleteAt: int64(5)} 103 104 u1, err := s.Store().User().Save(u1) 105 s.Require().Nil(err) 106 u2, err = s.Store().User().Save(u2) 107 s.Require().Nil(err) 108 u3, err = s.Store().User().Save(u3) 109 s.Require().Nil(err) 110 u4, err = s.Store().User().Save(u4) 111 s.Require().Nil(err) 112 u5, err = s.Store().User().Save(u5) 113 s.Require().Nil(err) 114 u6, err = s.Store().User().Save(u6) 115 s.Require().Nil(err) 116 117 m1 := &model.TeamMember{TeamId: teamId1, UserId: u1.Id} 118 m2 := &model.TeamMember{TeamId: teamId1, UserId: u2.Id} 119 m3 := &model.TeamMember{TeamId: teamId1, UserId: u3.Id} 120 m4 := &model.TeamMember{TeamId: teamId1, UserId: u4.Id} 121 m5 := &model.TeamMember{TeamId: teamId1, UserId: u5.Id} 122 m6 := &model.TeamMember{TeamId: teamId2, UserId: u6.Id} 123 124 t1, nErr := s.Store().Team().SaveMember(m1, -1) 125 s.Require().Nil(nErr) 126 _, nErr = s.Store().Team().SaveMember(m2, -1) 127 s.Require().Nil(nErr) 128 t3, nErr := s.Store().Team().SaveMember(m3, -1) 129 s.Require().Nil(nErr) 130 _, nErr = s.Store().Team().SaveMember(m4, -1) 131 s.Require().Nil(nErr) 132 t5, nErr := s.Store().Team().SaveMember(m5, -1) 133 s.Require().Nil(nErr) 134 _, nErr = s.Store().Team().SaveMember(m6, -1) 135 s.Require().Nil(nErr) 136 137 // Gets users ordered by UserName 138 ms, err := s.Store().Team().GetMembers(teamId1, 0, 100, &model.TeamMembersGetOptions{ExcludeDeletedUsers: true}) 139 s.Require().Nil(err) 140 s.Len(ms, 3) 141 s.Require().ElementsMatch(ms, [3]*model.TeamMember{t1, t3, t5}) 142 }