github.com/rajatvaryani/mattermost-server@v5.11.1+incompatible/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 11 func TestTeamJson(t *testing.T) { 12 o := Team{Id: NewId(), DisplayName: NewId()} 13 json := o.ToJson() 14 ro := TeamFromJson(strings.NewReader(json)) 15 16 if o.Id != ro.Id { 17 t.Fatal("Ids do not match") 18 } 19 } 20 21 func TestTeamIsValid(t *testing.T) { 22 o := Team{} 23 24 if err := o.IsValid(); err == nil { 25 t.Fatal("should be invalid") 26 } 27 28 o.Id = NewId() 29 if err := o.IsValid(); err == nil { 30 t.Fatal("should be invalid") 31 } 32 33 o.CreateAt = GetMillis() 34 if err := o.IsValid(); err == nil { 35 t.Fatal("should be invalid") 36 } 37 38 o.UpdateAt = GetMillis() 39 if err := o.IsValid(); err == nil { 40 t.Fatal("should be invalid") 41 } 42 43 o.Email = strings.Repeat("01234567890", 20) 44 if err := o.IsValid(); err == nil { 45 t.Fatal("should be invalid") 46 } 47 48 o.Email = "corey+test@hulen.com" 49 o.DisplayName = strings.Repeat("01234567890", 20) 50 if err := o.IsValid(); err == nil { 51 t.Fatal("should be invalid") 52 } 53 54 o.DisplayName = "1234" 55 o.Name = "ZZZZZZZ" 56 if err := o.IsValid(); err == nil { 57 t.Fatal("should be invalid") 58 } 59 60 o.Name = "zzzzz" 61 o.Type = TEAM_OPEN 62 o.InviteId = NewId() 63 if err := o.IsValid(); err != nil { 64 t.Fatal(err) 65 } 66 } 67 68 func TestTeamPreSave(t *testing.T) { 69 o := Team{DisplayName: "test"} 70 o.PreSave() 71 o.Etag() 72 } 73 74 func TestTeamPreUpdate(t *testing.T) { 75 o := Team{DisplayName: "test"} 76 o.PreUpdate() 77 } 78 79 var domains = []struct { 80 value string 81 expected bool 82 }{ 83 {"spin-punch", true}, 84 {"-spin-punch", false}, 85 {"spin-punch-", false}, 86 {"spin_punch", false}, 87 {"a", false}, 88 {"aa", true}, 89 {"aaa", true}, 90 {"aaa-999b", true}, 91 {"b00b", true}, 92 {"b)", false}, 93 {"test", true}, 94 } 95 96 func TestValidTeamName(t *testing.T) { 97 for _, v := range domains { 98 if IsValidTeamName(v.value) != v.expected { 99 t.Errorf("expect %v as %v", v.value, v.expected) 100 } 101 } 102 } 103 104 var tReservedDomains = []struct { 105 value string 106 expected bool 107 }{ 108 {"admin", true}, 109 {"Admin-punch", true}, 110 {"spin-punch-admin", false}, 111 } 112 113 func TestReservedTeamName(t *testing.T) { 114 for _, v := range tReservedDomains { 115 if IsReservedTeamName(v.value) != v.expected { 116 t.Errorf("expect %v as %v", v.value, v.expected) 117 } 118 } 119 } 120 121 func TestCleanTeamName(t *testing.T) { 122 if CleanTeamName("Jimbo's Admin") != "jimbos-admin" { 123 t.Fatal("didn't clean name properly") 124 } 125 126 if CleanTeamName("Admin Really cool") != "really-cool" { 127 t.Fatal("didn't clean name properly") 128 } 129 130 if CleanTeamName("super-duper-guys") != "super-duper-guys" { 131 t.Fatal("didn't clean name properly") 132 } 133 } 134 135 func TestTeamPatch(t *testing.T) { 136 p := &TeamPatch{ 137 DisplayName: new(string), 138 Description: new(string), 139 CompanyName: new(string), 140 AllowedDomains: new(string), 141 AllowOpenInvite: new(bool), 142 GroupConstrained: new(bool), 143 } 144 145 *p.DisplayName = NewId() 146 *p.Description = NewId() 147 *p.CompanyName = NewId() 148 *p.AllowedDomains = NewId() 149 *p.AllowOpenInvite = true 150 *p.GroupConstrained = true 151 152 o := Team{Id: NewId()} 153 o.Patch(p) 154 155 if *p.DisplayName != o.DisplayName { 156 t.Fatal("DisplayName did not update") 157 } 158 if *p.Description != o.Description { 159 t.Fatal("Description did not update") 160 } 161 if *p.CompanyName != o.CompanyName { 162 t.Fatal("CompanyName did not update") 163 } 164 if *p.AllowedDomains != o.AllowedDomains { 165 t.Fatal("AllowedDomains did not update") 166 } 167 if *p.AllowOpenInvite != o.AllowOpenInvite { 168 t.Fatal("AllowOpenInvite did not update") 169 } 170 if *p.GroupConstrained != *o.GroupConstrained { 171 t.Fatalf("expected %v got %v", *p.GroupConstrained, *o.GroupConstrained) 172 } 173 }