summaryrefslogtreecommitdiffstats
path: root/api/command_statuses_test.go
diff options
context:
space:
mode:
authorDmitri Aizenberg <dmitri.aiz@gmail.com>2016-08-31 06:24:14 -0700
committerJoram Wilander <jwawilander@gmail.com>2016-08-31 09:24:14 -0400
commitdc09b7781ac310646014f05db23844ab2c6d63f4 (patch)
tree906f13501b8e30be3551fa18078429445e5ee094 /api/command_statuses_test.go
parentdb660bdf9cbea09197d8292a8ec8efda8ac41f38 (diff)
downloadchat-dc09b7781ac310646014f05db23844ab2c6d63f4.tar.gz
chat-dc09b7781ac310646014f05db23844ab2c6d63f4.tar.bz2
chat-dc09b7781ac310646014f05db23844ab2c6d63f4.zip
PLT-1527 Add a slash command to set yourself away (#3752)
* added handlers for slash commands * added manual status persistance * added tests * removed extra debug output and comments * rebase - fixing the PR * making echo messages after slash commands ephemeral
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)
+ }
+}