summaryrefslogtreecommitdiffstats
path: root/api/user_test.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2016-11-02 14:38:34 -0400
committerGitHub <noreply@github.com>2016-11-02 14:38:34 -0400
commit137ade29d061e158543da814ecd0d06d7e992c1f (patch)
treecb528f2db486f78a4e9fe5a75a693ce6d3968cca /api/user_test.go
parentb45cc443c9e9fdf8147d354b95b6fecb31b2e7b2 (diff)
downloadchat-137ade29d061e158543da814ecd0d06d7e992c1f.tar.gz
chat-137ade29d061e158543da814ecd0d06d7e992c1f.tar.bz2
chat-137ade29d061e158543da814ecd0d06d7e992c1f.zip
PLT-4535/PLT-4503 Fix inactive users in searches and add option functionality to DB user search (#4413)
* Add options to user database search * Fix inactive users showing up incorrectly in some user searches * Read JSON for searchUsers API into anonymous struct * Move anonymous struct to be a normal struct in model directory and upadte client to use it * Added clarification comment about slightly odd query condition in search
Diffstat (limited to 'api/user_test.go')
-rw-r--r--api/user_test.go58
1 files changed, 48 insertions, 10 deletions
diff --git a/api/user_test.go b/api/user_test.go
index 2c6238c54..75e246ab3 100644
--- a/api/user_test.go
+++ b/api/user_test.go
@@ -2034,10 +2034,14 @@ func TestGetProfilesNotInChannel(t *testing.T) {
}
func TestSearchUsers(t *testing.T) {
- th := Setup().InitBasic()
+ th := Setup().InitBasic().InitSystemAdmin()
Client := th.BasicClient
- if result, err := Client.SearchUsers(th.BasicUser.Username, "", map[string]string{}); err != nil {
+ inactiveUser := th.CreateUser(Client)
+ LinkUserToTeam(inactiveUser, th.BasicTeam)
+ th.SystemAdminClient.Must(th.SystemAdminClient.UpdateActive(inactiveUser.Id, false))
+
+ if result, err := Client.SearchUsers(model.UserSearch{Term: th.BasicUser.Username}); err != nil {
t.Fatal(err)
} else {
users := result.Data.([]*model.User)
@@ -2054,7 +2058,41 @@ func TestSearchUsers(t *testing.T) {
}
}
- if result, err := Client.SearchUsers(th.BasicUser.Username, "", map[string]string{"in_channel": th.BasicChannel.Id}); err != nil {
+ if result, err := Client.SearchUsers(model.UserSearch{Term: inactiveUser.Username, TeamId: th.BasicTeam.Id}); err != nil {
+ t.Fatal(err)
+ } else {
+ users := result.Data.([]*model.User)
+
+ found := false
+ for _, user := range users {
+ if user.Id == inactiveUser.Id {
+ found = true
+ }
+ }
+
+ if found {
+ t.Fatal("should not have found inactive user")
+ }
+ }
+
+ if result, err := Client.SearchUsers(model.UserSearch{Term: inactiveUser.Username, TeamId: th.BasicTeam.Id, AllowInactive: true}); err != nil {
+ t.Fatal(err)
+ } else {
+ users := result.Data.([]*model.User)
+
+ found := false
+ for _, user := range users {
+ if user.Id == inactiveUser.Id {
+ found = true
+ }
+ }
+
+ if !found {
+ t.Fatal("should have found inactive user")
+ }
+ }
+
+ if result, err := Client.SearchUsers(model.UserSearch{Term: th.BasicUser.Username, InChannelId: th.BasicChannel.Id}); err != nil {
t.Fatal(err)
} else {
users := result.Data.([]*model.User)
@@ -2075,7 +2113,7 @@ func TestSearchUsers(t *testing.T) {
}
}
- if result, err := Client.SearchUsers(th.BasicUser2.Username, "", map[string]string{"not_in_channel": th.BasicChannel.Id}); err != nil {
+ if result, err := Client.SearchUsers(model.UserSearch{Term: th.BasicUser2.Username, NotInChannelId: th.BasicChannel.Id}); err != nil {
t.Fatal(err)
} else {
users := result.Data.([]*model.User)
@@ -2102,7 +2140,7 @@ func TestSearchUsers(t *testing.T) {
}
}
- if result, err := Client.SearchUsers(th.BasicUser2.Username, th.BasicTeam.Id, map[string]string{"not_in_channel": th.BasicChannel.Id}); err != nil {
+ if result, err := Client.SearchUsers(model.UserSearch{Term: th.BasicUser2.Username, TeamId: th.BasicTeam.Id, NotInChannelId: th.BasicChannel.Id}); err != nil {
t.Fatal(err)
} else {
users := result.Data.([]*model.User)
@@ -2129,7 +2167,7 @@ func TestSearchUsers(t *testing.T) {
}
}
- if result, err := Client.SearchUsers(th.BasicUser.Username, "junk", map[string]string{"not_in_channel": th.BasicChannel.Id}); err != nil {
+ if result, err := Client.SearchUsers(model.UserSearch{Term: th.BasicUser.Username, TeamId: "junk", NotInChannelId: th.BasicChannel.Id}); err != nil {
t.Fatal(err)
} else {
users := result.Data.([]*model.User)
@@ -2141,7 +2179,7 @@ func TestSearchUsers(t *testing.T) {
th.LoginBasic2()
- if result, err := Client.SearchUsers(th.BasicUser.Username, "", map[string]string{}); err != nil {
+ if result, err := Client.SearchUsers(model.UserSearch{Term: th.BasicUser.Username}); err != nil {
t.Fatal(err)
} else {
users := result.Data.([]*model.User)
@@ -2158,15 +2196,15 @@ func TestSearchUsers(t *testing.T) {
}
}
- if _, err := Client.SearchUsers("", "", map[string]string{}); err == nil {
+ if _, err := Client.SearchUsers(model.UserSearch{}); err == nil {
t.Fatal("should have errored - blank term")
}
- if _, err := Client.SearchUsers(th.BasicUser.Username, "", map[string]string{"in_channel": th.BasicChannel.Id}); err == nil {
+ if _, err := Client.SearchUsers(model.UserSearch{Term: th.BasicUser.Username, InChannelId: th.BasicChannel.Id}); err == nil {
t.Fatal("should not have access")
}
- if _, err := Client.SearchUsers(th.BasicUser.Username, "", map[string]string{"not_in_channel": th.BasicChannel.Id}); err == nil {
+ if _, err := Client.SearchUsers(model.UserSearch{Term: th.BasicUser.Username, NotInChannelId: th.BasicChannel.Id}); err == nil {
t.Fatal("should not have access")
}
}