From dc09b7781ac310646014f05db23844ab2c6d63f4 Mon Sep 17 00:00:00 2001 From: Dmitri Aizenberg Date: Wed, 31 Aug 2016 06:24:14 -0700 Subject: 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 --- api/command_statuses_test.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 api/command_statuses_test.go (limited to 'api/command_statuses_test.go') 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) + } +} -- cgit v1.2.3-1-g7c22