diff options
Diffstat (limited to 'api/command_statuses_test.go')
-rw-r--r-- | api/command_statuses_test.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/api/command_statuses_test.go b/api/command_statuses_test.go new file mode 100644 index 000000000..1c8026a9f --- /dev/null +++ b/api/command_statuses_test.go @@ -0,0 +1,40 @@ +// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package api + +import ( + "testing" + "time" + + "github.com/mattermost/platform/model" +) + +func TestStatusCommands(t *testing.T) { + th := Setup().InitBasic() + commandAndTest(t, th, "away") + commandAndTest(t, th, "offline") + commandAndTest(t, th, "online") +} + +func commandAndTest(t *testing.T, th *TestHelper, status string) { + Client := th.BasicClient + channel := th.BasicChannel + user := th.BasicUser + + r1 := Client.Must(Client.Command(channel.Id, "/"+status, false)).Data.(*model.CommandResponse) + if r1 == nil { + t.Fatal("Command failed to execute") + } + + time.Sleep(300 * time.Millisecond) + + statuses := Client.Must(Client.GetStatuses()).Data.(map[string]string) + + if status == "offline" { + status = "" + } + if statuses[user.Id] != status { + t.Fatal("Error setting status " + status) + } +} |