github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/app/slashcommands/command_channel_rename_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 "strings" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 12 "github.com/masterhung0112/hk_server/v5/model" 13 ) 14 15 func TestRenameProviderDoCommand(t *testing.T) { 16 th := setup(t).initBasic() 17 defer th.tearDown() 18 19 th.addPermissionToRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 20 21 rp := RenameProvider{} 22 args := &model.CommandArgs{ 23 T: func(s string, args ...interface{}) string { return s }, 24 ChannelId: th.BasicChannel.Id, 25 UserId: th.BasicUser.Id, 26 } 27 28 // Table Test for basic cases. Blank text in response indicates success 29 for msg, expected := range map[string]string{ 30 "": "api.command_channel_rename.message.app_error", 31 "o": "api.command_channel_rename.too_short.app_error", 32 "joram": "", 33 "More than 22 chars but less than 64": "", 34 strings.Repeat("12345", 13): "api.command_channel_rename.too_long.app_error", 35 } { 36 actual := rp.DoCommand(th.App, th.Context, args, msg).Text 37 assert.Equal(t, expected, actual) 38 } 39 40 // Try a public channel *without* permission. 41 th.removePermissionFromRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 42 43 args = &model.CommandArgs{ 44 T: func(s string, args ...interface{}) string { return s }, 45 ChannelId: th.BasicChannel.Id, 46 UserId: th.BasicUser.Id, 47 } 48 49 actual := rp.DoCommand(th.App, th.Context, args, "hello").Text 50 assert.Equal(t, "api.command_channel_rename.permission.app_error", actual) 51 52 // Try a private channel *with* permission. 53 privateChannel := th.createPrivateChannel(th.BasicTeam) 54 55 th.addPermissionToRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 56 57 args = &model.CommandArgs{ 58 T: func(s string, args ...interface{}) string { return s }, 59 ChannelId: privateChannel.Id, 60 UserId: th.BasicUser.Id, 61 } 62 63 actual = rp.DoCommand(th.App, th.Context, args, "hello").Text 64 assert.Equal(t, "", actual) 65 66 // Try a private channel *without* permission. 67 th.removePermissionFromRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.CHANNEL_USER_ROLE_ID) 68 69 args = &model.CommandArgs{ 70 T: func(s string, args ...interface{}) string { return s }, 71 ChannelId: privateChannel.Id, 72 UserId: th.BasicUser.Id, 73 } 74 75 actual = rp.DoCommand(th.App, th.Context, args, "hello").Text 76 assert.Equal(t, "api.command_channel_rename.permission.app_error", actual) 77 78 // Try a group channel *with* being a member. 79 user1 := th.createUser() 80 user2 := th.createUser() 81 82 groupChannel := th.createGroupChannel(user1, user2) 83 84 args = &model.CommandArgs{ 85 T: func(s string, args ...interface{}) string { return s }, 86 ChannelId: groupChannel.Id, 87 UserId: th.BasicUser.Id, 88 } 89 90 actual = rp.DoCommand(th.App, th.Context, args, "hello").Text 91 assert.Equal(t, "api.command_channel_rename.direct_group.app_error", actual) 92 93 // Try a direct channel *with* being a member. 94 directChannel := th.createDmChannel(user1) 95 96 args = &model.CommandArgs{ 97 T: func(s string, args ...interface{}) string { return s }, 98 ChannelId: directChannel.Id, 99 UserId: th.BasicUser.Id, 100 } 101 102 actual = rp.DoCommand(th.App, th.Context, args, "hello").Text 103 assert.Equal(t, "api.command_channel_rename.direct_group.app_error", actual) 104 }