github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/app/slashcommands/command_channel_header_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/masterhung0112/hk_server/v5/model" 12 ) 13 14 func TestHeaderProviderDoCommand(t *testing.T) { 15 th := setup(t).initBasic() 16 defer th.tearDown() 17 18 hp := HeaderProvider{} 19 20 th.addPermissionToRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 21 22 // Try a public channel *with* permission. 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_header.message.app_error", 31 "hello": "", 32 } { 33 actual := hp.DoCommand(th.App, th.Context, args, msg).Text 34 assert.Equal(t, expected, actual) 35 } 36 37 th.removePermissionFromRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 38 39 // Try a public channel *without* permission. 40 args = &model.CommandArgs{ 41 T: func(s string, args ...interface{}) string { return s }, 42 ChannelId: th.BasicChannel.Id, 43 UserId: th.BasicUser.Id, 44 } 45 46 actual := hp.DoCommand(th.App, th.Context, args, "hello").Text 47 assert.Equal(t, "api.command_channel_header.permission.app_error", actual) 48 49 th.addPermissionToRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 50 51 // Try a private channel *with* permission. 52 privateChannel := th.createPrivateChannel(th.BasicTeam) 53 54 args = &model.CommandArgs{ 55 T: func(s string, args ...interface{}) string { return s }, 56 ChannelId: privateChannel.Id, 57 UserId: th.BasicUser.Id, 58 } 59 60 actual = hp.DoCommand(th.App, th.Context, args, "hello").Text 61 assert.Equal(t, "", actual) 62 63 th.removePermissionFromRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 64 65 // Try a private channel *without* permission. 66 args = &model.CommandArgs{ 67 T: func(s string, args ...interface{}) string { return s }, 68 ChannelId: privateChannel.Id, 69 UserId: th.BasicUser.Id, 70 } 71 72 actual = hp.DoCommand(th.App, th.Context, args, "hello").Text 73 assert.Equal(t, "api.command_channel_header.permission.app_error", actual) 74 75 // Try a group channel *with* being a member. 76 user1 := th.createUser() 77 user2 := th.createUser() 78 user3 := th.createUser() 79 80 groupChannel := th.createGroupChannel(user1, user2) 81 82 args = &model.CommandArgs{ 83 T: func(s string, args ...interface{}) string { return s }, 84 ChannelId: groupChannel.Id, 85 UserId: user1.Id, 86 } 87 88 actual = hp.DoCommand(th.App, th.Context, args, "hello").Text 89 assert.Equal(t, "", actual) 90 91 // Try a group channel *without* being a member. 92 args = &model.CommandArgs{ 93 T: func(s string, args ...interface{}) string { return s }, 94 ChannelId: groupChannel.Id, 95 UserId: user3.Id, 96 } 97 98 actual = hp.DoCommand(th.App, th.Context, args, "hello").Text 99 assert.Equal(t, "api.command_channel_header.permission.app_error", actual) 100 101 // Try a direct channel *with* being a member. 102 directChannel := th.createDmChannel(user1) 103 104 args = &model.CommandArgs{ 105 T: func(s string, args ...interface{}) string { return s }, 106 ChannelId: directChannel.Id, 107 UserId: th.BasicUser.Id, 108 } 109 110 actual = hp.DoCommand(th.App, th.Context, args, "hello").Text 111 assert.Equal(t, "", actual) 112 113 // Try a direct channel *without* being a member. 114 args = &model.CommandArgs{ 115 T: func(s string, args ...interface{}) string { return s }, 116 ChannelId: directChannel.Id, 117 UserId: user2.Id, 118 } 119 120 actual = hp.DoCommand(th.App, th.Context, args, "hello").Text 121 assert.Equal(t, "api.command_channel_header.permission.app_error", actual) 122 }