github.com/adacta-ru/mattermost-server/v6@v6.0.0/app/slashcommands/command_channel_purpose_test.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package slashcommands 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 11 "github.com/adacta-ru/mattermost-server/v6/model" 12 ) 13 14 func TestPurposeProviderDoCommand(t *testing.T) { 15 th := setup(t).initBasic() 16 defer th.tearDown() 17 18 pp := PurposeProvider{} 19 20 // Try a public channel *with* permission. 21 th.addPermissionToRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 22 23 args := &model.CommandArgs{ 24 T: func(s string, args ...interface{}) string { return s }, 25 ChannelId: th.BasicChannel.Id, 26 UserId: th.BasicUser.Id, 27 } 28 29 for msg, expected := range map[string]string{ 30 "": "api.command_channel_purpose.message.app_error", 31 "hello": "", 32 } { 33 actual := pp.DoCommand(th.App, args, msg).Text 34 assert.Equal(t, expected, actual) 35 } 36 37 // Try a public channel *without* permission. 38 th.removePermissionFromRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 39 40 args = &model.CommandArgs{ 41 T: func(s string, args ...interface{}) string { return s }, 42 ChannelId: th.BasicChannel.Id, 43 } 44 45 actual := pp.DoCommand(th.App, args, "hello").Text 46 assert.Equal(t, "api.command_channel_purpose.permission.app_error", actual) 47 48 // Try a private channel *with* permission. 49 privateChannel := th.createPrivateChannel(th.BasicTeam) 50 51 th.addPermissionToRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 52 53 args = &model.CommandArgs{ 54 T: func(s string, args ...interface{}) string { return s }, 55 ChannelId: privateChannel.Id, 56 UserId: th.BasicUser.Id, 57 } 58 59 actual = pp.DoCommand(th.App, args, "hello").Text 60 assert.Equal(t, "", actual) 61 62 // Try a private channel *without* permission. 63 th.removePermissionFromRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 64 65 args = &model.CommandArgs{ 66 T: func(s string, args ...interface{}) string { return s }, 67 ChannelId: privateChannel.Id, 68 } 69 70 actual = pp.DoCommand(th.App, args, "hello").Text 71 assert.Equal(t, "api.command_channel_purpose.permission.app_error", actual) 72 73 // Try a group channel *with* being a member. 74 user1 := th.createUser() 75 user2 := th.createUser() 76 77 groupChannel := th.createGroupChannel(user1, user2) 78 79 args = &model.CommandArgs{ 80 T: func(s string, args ...interface{}) string { return s }, 81 ChannelId: groupChannel.Id, 82 } 83 84 actual = pp.DoCommand(th.App, args, "hello").Text 85 assert.Equal(t, "api.command_channel_purpose.direct_group.app_error", actual) 86 87 // Try a direct channel *with* being a member. 88 directChannel := th.createDmChannel(user1) 89 90 args = &model.CommandArgs{ 91 T: func(s string, args ...interface{}) string { return s }, 92 ChannelId: directChannel.Id, 93 } 94 95 actual = pp.DoCommand(th.App, args, "hello").Text 96 assert.Equal(t, "api.command_channel_purpose.direct_group.app_error", actual) 97 }