github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/model/team_test.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package model 5 6 import ( 7 "strings" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestTeamJson(t *testing.T) { 15 o := Team{Id: NewId(), DisplayName: NewId()} 16 json := o.ToJson() 17 ro := TeamFromJson(strings.NewReader(json)) 18 19 require.Equal(t, o.Id, ro.Id, "Ids do not match") 20 } 21 22 func TestTeamIsValid(t *testing.T) { 23 o := Team{} 24 25 err := o.IsValid() 26 require.NotNil(t, err, "should be invalid") 27 28 o.Id = NewId() 29 err = o.IsValid() 30 require.NotNil(t, err, "should be invalid") 31 32 o.CreateAt = GetMillis() 33 err = o.IsValid() 34 require.NotNil(t, err, "should be invalid") 35 36 o.UpdateAt = GetMillis() 37 err = o.IsValid() 38 require.NotNil(t, err, "should be invalid") 39 40 o.Email = strings.Repeat("01234567890", 20) 41 err = o.IsValid() 42 require.NotNil(t, err, "should be invalid") 43 44 o.Email = "corey+test@hulen.com" 45 o.DisplayName = strings.Repeat("01234567890", 20) 46 err = o.IsValid() 47 require.NotNil(t, err, "should be invalid") 48 49 o.DisplayName = "1234" 50 o.Name = "ZZZZZZZ" 51 err = o.IsValid() 52 require.NotNil(t, err, "should be invalid") 53 54 o.Name = "zzzzz" 55 o.Type = TEAM_OPEN 56 o.InviteId = NewId() 57 err = o.IsValid() 58 require.Nil(t, err, err) 59 } 60 61 func TestTeamPreSave(t *testing.T) { 62 o := Team{DisplayName: "test"} 63 o.PreSave() 64 o.Etag() 65 } 66 67 func TestTeamPreUpdate(t *testing.T) { 68 o := Team{DisplayName: "test"} 69 o.PreUpdate() 70 } 71 72 var domains = []struct { 73 value string 74 expected bool 75 }{ 76 {"spin-punch", true}, 77 {"-spin-punch", false}, 78 {"spin-punch-", false}, 79 {"spin_punch", false}, 80 {"a", false}, 81 {"aa", true}, 82 {"aaa", true}, 83 {"aaa-999b", true}, 84 {"b00b", true}, 85 {"b)", false}, 86 {"test", true}, 87 } 88 89 func TestValidTeamName(t *testing.T) { 90 for _, v := range domains { 91 actual := IsValidTeamName(v.value) 92 assert.Equal(t, v.expected, actual) 93 } 94 } 95 96 var tReservedDomains = []struct { 97 value string 98 expected bool 99 }{ 100 {"admin", true}, 101 {"Admin-punch", true}, 102 {"spin-punch-admin", false}, 103 } 104 105 func TestReservedTeamName(t *testing.T) { 106 for _, v := range tReservedDomains { 107 actual := IsReservedTeamName(v.value) 108 assert.Equal(t, v.expected, actual) 109 } 110 } 111 112 func TestCleanTeamName(t *testing.T) { 113 actual := CleanTeamName("Jimbo's Admin") 114 require.Equal(t, "jimbos-admin", actual, "didn't clean name properly") 115 116 actual = CleanTeamName("Admin Really cool") 117 require.Equal(t, "really-cool", actual, "didn't clean name properly") 118 119 actual = CleanTeamName("super-duper-guys") 120 require.Equal(t, "super-duper-guys", actual, "didn't clean name properly") 121 } 122 123 func TestTeamPatch(t *testing.T) { 124 p := &TeamPatch{ 125 DisplayName: new(string), 126 Description: new(string), 127 CompanyName: new(string), 128 AllowedDomains: new(string), 129 AllowOpenInvite: new(bool), 130 GroupConstrained: new(bool), 131 } 132 133 *p.DisplayName = NewId() 134 *p.Description = NewId() 135 *p.CompanyName = NewId() 136 *p.AllowedDomains = NewId() 137 *p.AllowOpenInvite = true 138 *p.GroupConstrained = true 139 140 o := Team{Id: NewId()} 141 o.Patch(p) 142 143 require.Equal(t, *p.DisplayName, o.DisplayName, "DisplayName did not update") 144 require.Equal(t, *p.Description, o.Description, "Description did not update") 145 require.Equal(t, *p.CompanyName, o.CompanyName, "CompanyName did not update") 146 require.Equal(t, *p.AllowedDomains, o.AllowedDomains, "AllowedDomains did not update") 147 require.Equal(t, *p.AllowOpenInvite, o.AllowOpenInvite, "AllowOpenInvite did not update") 148 require.Equal(t, *p.GroupConstrained, *o.GroupConstrained) 149 }