MM-14723: Add config flag for creating bots (#10795)

* MM-14723 add config flag for creating bots

* MM-14723 - update i18n to handle new config flag

* MM-14723 - change API tests to allow bots by default

* Update i18n/en.json

Co-Authored-By: andresoro <ao15@my.fsu.edu>

* MM-14723: add config flag for enabling/disabling bot creation

* undo changes to apitestlib.go to explicitly change config in each test

* add unit tests for config changes

* MM-14723 update test cases

* MM-14723 update test cases to use UpdateConfig method
Этот коммит содержится в:
Andres Orozco
2019-05-13 10:48:32 -04:00
коммит произвёл Christopher Speller
родитель b3aa3d4567
Коммит 30061df036
5 изменённых файлов: 151 добавлений и 1 удалений

Просмотреть файл

@@ -17,6 +17,10 @@ func TestCreateBot(t *testing.T) {
th := Setup().InitBasic()
defer th.TearDown()
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
_, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
DisplayName: "a bot",
@@ -26,6 +30,23 @@ func TestCreateBot(t *testing.T) {
CheckErrorMessage(t, resp, "api.context.permissions.app_error")
})
t.Run("create bot without config permissions", func(t *testing.T) {
th := Setup().InitBasic()
defer th.TearDown()
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.Config().ServiceSettings.CreateBotAccounts = model.NewBool(false)
_, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
DisplayName: "a bot",
Description: "bot",
})
CheckErrorMessage(t, resp, "api.bot.create_disabled")
})
t.Run("create bot with permissions", func(t *testing.T) {
th := Setup().InitBasic()
defer th.TearDown()
@@ -33,6 +54,9 @@ func TestCreateBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot := &model.Bot{
Username: GenerateTestUsername(),
@@ -55,6 +79,9 @@ func TestCreateBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
_, resp := th.Client.CreateBot(&model.Bot{
Username: "username",
@@ -81,6 +108,10 @@ func TestPatchBot(t *testing.T) {
defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
createdBot, resp := th.SystemAdminClient.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
DisplayName: "a bot",
@@ -100,6 +131,9 @@ func TestPatchBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
createdBot, resp := th.SystemAdminClient.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
@@ -120,6 +154,9 @@ func TestPatchBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_MANAGE_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
createdBot, resp := th.SystemAdminClient.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
@@ -150,6 +187,9 @@ func TestPatchBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
createdBot, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
@@ -177,6 +217,9 @@ func TestPatchBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
createdBot, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
@@ -204,6 +247,9 @@ func TestPatchBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
createdBot, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
@@ -235,6 +281,9 @@ func TestPatchBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot := &model.Bot{
Username: GenerateTestUsername(),
@@ -266,6 +315,9 @@ func TestPatchBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
createdBot, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
@@ -293,6 +345,10 @@ func TestGetBot(t *testing.T) {
th := Setup().InitBasic()
defer th.TearDown()
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot1, resp := th.SystemAdminClient.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
DisplayName: "a bot",
@@ -320,6 +376,10 @@ func TestGetBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
myBot, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
DisplayName: "my bot",
@@ -429,6 +489,10 @@ func TestGetBots(t *testing.T) {
th := Setup().InitBasic()
defer th.TearDown()
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot1, resp := th.SystemAdminClient.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
DisplayName: "a bot",
@@ -661,6 +725,9 @@ func TestDisableBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot := &model.Bot{
Username: GenerateTestUsername(),
@@ -683,6 +750,9 @@ func TestDisableBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot := &model.Bot{
Username: GenerateTestUsername(),
@@ -705,6 +775,9 @@ func TestDisableBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
@@ -730,7 +803,6 @@ func TestDisableBot(t *testing.T) {
require.Equal(t, bot, enabledBot2)
})
}
func TestEnableBot(t *testing.T) {
t.Run("enable non-existent bot", func(t *testing.T) {
th := Setup().InitBasic()
@@ -747,6 +819,9 @@ func TestEnableBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot := &model.Bot{
Username: GenerateTestUsername(),
@@ -772,6 +847,9 @@ func TestEnableBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot := &model.Bot{
Username: GenerateTestUsername(),
@@ -797,6 +875,9 @@ func TestEnableBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(),
@@ -840,6 +921,9 @@ func TestAssignBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot := &model.Bot{
Username: GenerateTestUsername(),
@@ -879,6 +963,9 @@ func TestAssignBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot := &model.Bot{
Username: GenerateTestUsername(),
@@ -907,6 +994,9 @@ func TestAssignBot(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID)
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.CreateBotAccounts = true
})
bot := &model.Bot{
Username: GenerateTestUsername(),