summaryrefslogtreecommitdiffstats
path: root/api/command_statuses_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'api/command_statuses_test.go')
-rw-r--r--api/command_statuses_test.go40
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)
+ }
+}