summaryrefslogtreecommitdiffstats
path: root/models/userlist_test.go
diff options
context:
space:
mode:
authorAntoine GIRARD <sapk@users.noreply.github.com>2019-08-02 18:06:28 +0200
committertechknowlogick <techknowlogick@gitea.io>2019-08-02 12:06:27 -0400
commit76408d50fb338e9239ee06bb26eec28453167300 (patch)
tree552f49cb095e9744c11f71dba9a3910a7d0ceb18 /models/userlist_test.go
parent3566d2c860b0ad3ab7d6d5fb1490eb9a5b5f5974 (diff)
downloadgitea-76408d50fb338e9239ee06bb26eec28453167300.tar.gz
gitea-76408d50fb338e9239ee06bb26eec28453167300.zip
org/members: display 2FA members states + optimize sql requests (#7621)
* org/members: display 2FA state * fix comment typo * lay down UserList bases * add basic test for previous methods * add comment for UserList type * add valid two-fa account * test new UserList methods * optimize MembersIsPublic by side loading info on GetMembers + fix integrations tests * respect fmt rules * use map for data * Optimize GetTwoFaStatus * rewrite by using existing sub func * Optimize IsUserOrgOwner * remove un-used code * tests: cover empty org + fix import order * tests: add ErrTeamNotExist path * tests: fix wrong expected result
Diffstat (limited to 'models/userlist_test.go')
-rw-r--r--models/userlist_test.go90
1 files changed, 90 insertions, 0 deletions
diff --git a/models/userlist_test.go b/models/userlist_test.go
new file mode 100644
index 0000000000..ca08cc90ce
--- /dev/null
+++ b/models/userlist_test.go
@@ -0,0 +1,90 @@
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package models
+
+import (
+ "fmt"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestUserListIsPublicMember(t *testing.T) {
+ assert.NoError(t, PrepareTestDatabase())
+ tt := []struct {
+ orgid int64
+ expected map[int64]bool
+ }{
+ {3, map[int64]bool{2: true, 4: false}},
+ {6, map[int64]bool{5: true}},
+ {7, map[int64]bool{5: false}},
+ {25, map[int64]bool{24: true}},
+ {22, map[int64]bool{}},
+ }
+ for _, v := range tt {
+ t.Run(fmt.Sprintf("IsPublicMemberOfOrdIg%d", v.orgid), func(t *testing.T) {
+ testUserListIsPublicMember(t, v.orgid, v.expected)
+ })
+ }
+}
+func testUserListIsPublicMember(t *testing.T, orgID int64, expected map[int64]bool) {
+ org, err := GetUserByID(orgID)
+ assert.NoError(t, err)
+ assert.NoError(t, org.GetMembers())
+ assert.Equal(t, expected, org.MembersIsPublic)
+
+}
+
+func TestUserListIsUserOrgOwner(t *testing.T) {
+ assert.NoError(t, PrepareTestDatabase())
+ tt := []struct {
+ orgid int64
+ expected map[int64]bool
+ }{
+ {3, map[int64]bool{2: true, 4: false}},
+ {6, map[int64]bool{5: true}},
+ {7, map[int64]bool{5: true}},
+ {25, map[int64]bool{24: false}}, // ErrTeamNotExist
+ {22, map[int64]bool{}}, // No member
+ }
+ for _, v := range tt {
+ t.Run(fmt.Sprintf("IsUserOrgOwnerOfOrdIg%d", v.orgid), func(t *testing.T) {
+ testUserListIsUserOrgOwner(t, v.orgid, v.expected)
+ })
+ }
+}
+
+func testUserListIsUserOrgOwner(t *testing.T, orgID int64, expected map[int64]bool) {
+ org, err := GetUserByID(orgID)
+ assert.NoError(t, err)
+ assert.NoError(t, org.GetMembers())
+ assert.Equal(t, expected, org.Members.IsUserOrgOwner(orgID))
+}
+
+func TestUserListIsTwoFaEnrolled(t *testing.T) {
+ assert.NoError(t, PrepareTestDatabase())
+ tt := []struct {
+ orgid int64
+ expected map[int64]bool
+ }{
+ {3, map[int64]bool{2: false, 4: false}},
+ {6, map[int64]bool{5: false}},
+ {7, map[int64]bool{5: false}},
+ {25, map[int64]bool{24: true}},
+ {22, map[int64]bool{}},
+ }
+ for _, v := range tt {
+ t.Run(fmt.Sprintf("IsTwoFaEnrolledOfOrdIg%d", v.orgid), func(t *testing.T) {
+ testUserListIsTwoFaEnrolled(t, v.orgid, v.expected)
+ })
+ }
+}
+
+func testUserListIsTwoFaEnrolled(t *testing.T, orgID int64, expected map[int64]bool) {
+ org, err := GetUserByID(orgID)
+ assert.NoError(t, err)
+ assert.NoError(t, org.GetMembers())
+ assert.Equal(t, expected, org.Members.GetTwoFaStatus())
+}