diff options
author | Carlos Tadeu Panato Junior <ctadeu@gmail.com> | 2017-04-03 14:12:50 +0200 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2017-04-03 08:12:50 -0400 |
commit | 88b8df314673ceae08a37a6472296448e83d7442 (patch) | |
tree | ca1e646bbc3daf4f47cb8404d35305a74230f2e6 /api4/command_test.go | |
parent | 67a8770118a7e8902efe537c4257b7442cb651fd (diff) | |
download | chat-88b8df314673ceae08a37a6472296448e83d7442.tar.gz chat-88b8df314673ceae08a37a6472296448e83d7442.tar.bz2 chat-88b8df314673ceae08a37a6472296448e83d7442.zip |
implement GET /commands (#5865)
Diffstat (limited to 'api4/command_test.go')
-rw-r--r-- | api4/command_test.go | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/api4/command_test.go b/api4/command_test.go index aa3ad37b6..3c8076470 100644 --- a/api4/command_test.go +++ b/api4/command_test.go @@ -59,3 +59,80 @@ func TestCreateCommand(t *testing.T) { CheckNotImplementedStatus(t, resp) CheckErrorMessage(t, resp, "api.command.disabled.app_error") } + +func TestListCommands(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + Client := th.Client + + newCmd := &model.Command{ + CreatorId: th.BasicUser.Id, + TeamId: th.BasicTeam.Id, + URL: "http://nowhere.com", + Method: model.COMMAND_METHOD_POST, + Trigger: "custom_command"} + + _, resp := th.SystemAdminClient.CreateCommand(newCmd) + CheckNoError(t, resp) + + t.Run("ListSystemAndCustomCommands", func(t *testing.T) { + listCommands, resp := th.SystemAdminClient.ListCommands(th.BasicTeam.Id, false) + CheckNoError(t, resp) + + foundEcho := false + foundCustom := false + for _, command := range listCommands { + if command.Trigger == "echo" { + foundEcho = true + } + if command.Trigger == "custom_command" { + foundCustom = true + } + } + if !foundEcho { + t.Fatal("Couldn't find echo command") + } + if !foundCustom { + t.Fatal("Should list the custom command") + } + }) + + t.Run("ListCustomOnlyCommands", func(t *testing.T) { + listCommands, resp := th.SystemAdminClient.ListCommands(th.BasicTeam.Id, true) + CheckNoError(t, resp) + + if len(listCommands) > 1 { + t.Fatal("Should list just one custom command") + } + if listCommands[0].Trigger != "custom_command" { + t.Fatal("Wrong custom command trigger") + } + }) + + t.Run("UserWithNoPermissionForCustomCommands", func(t *testing.T) { + _, resp := Client.ListCommands(th.BasicTeam.Id, true) + CheckForbiddenStatus(t, resp) + }) + + t.Run("RegularUserCanListOnlySystemCommands", func(t *testing.T) { + listCommands, resp := Client.ListCommands(th.BasicTeam.Id, false) + CheckNoError(t, resp) + + foundEcho := false + foundCustom := false + for _, command := range listCommands { + if command.Trigger == "echo" { + foundEcho = true + } + if command.Trigger == "custom_command" { + foundCustom = true + } + } + if !foundEcho { + t.Fatal("Couldn't find echo command") + } + if foundCustom { + t.Fatal("Should not list the custom command") + } + }) +} |