[MM-26576] fix flaky TestCreateUserInputFilter test (#15097)

- Summary
    fix flaky TestCreateUserInputFilter test by deleting created user between interations

- Ticket Link
    https://mattermost.atlassian.net/browse/MM-26576
Этот коммит содержится в:
Ashish Bhate
2020-07-31 14:38:31 +00:00
коммит произвёл GitHub
родитель 1c5b6522e3
Коммит 61cc7a8680

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

@@ -5,10 +5,8 @@ package api4
import ( import (
"fmt" "fmt"
"math/rand"
"net/http" "net/http"
"regexp" "regexp"
"strconv"
"strings" "strings"
"testing" "testing"
"time" "time"
@@ -85,20 +83,24 @@ func TestCreateUserInputFilter(t *testing.T) {
t.Run("DomainRestriction", func(t *testing.T) { t.Run("DomainRestriction", func(t *testing.T) {
enableAPIUserDeletion := th.App.Config().ServiceSettings.EnableAPIUserDeletion
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.TeamSettings.EnableOpenServer = true *cfg.TeamSettings.EnableOpenServer = true
*cfg.TeamSettings.EnableUserCreation = true *cfg.TeamSettings.EnableUserCreation = true
*cfg.TeamSettings.RestrictCreationToDomains = "mattermost.com" *cfg.TeamSettings.RestrictCreationToDomains = "mattermost.com"
*cfg.ServiceSettings.EnableAPIUserDeletion = true
}) })
defer th.App.UpdateConfig(func(cfg *model.Config) { defer th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.TeamSettings.RestrictCreationToDomains = "" *cfg.TeamSettings.RestrictCreationToDomains = ""
*cfg.ServiceSettings.EnableAPIUserDeletion = *enableAPIUserDeletion
}) })
th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) { th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
emailAddr := strconv.Itoa(rand.Intn(1000)) + "+testdomainrestriction@mattermost.com" user := &model.User{Email: "foobar+testdomainrestriction@mattermost.com", Password: "Password1", Username: GenerateTestUsername()}
user := &model.User{Email: emailAddr, Password: "Password1", Username: GenerateTestUsername()} u, resp := client.CreateUser(user) // we need the returned created user to use its Id for deletion.
_, resp := client.CreateUser(user) CheckNoError(t, resp)
_, resp = client.PermanentDeleteUser(u.Id)
CheckNoError(t, resp) CheckNoError(t, resp)
}, "ValidUser") }, "ValidUser")
@@ -116,7 +118,9 @@ func TestCreateUserInputFilter(t *testing.T) {
AuthService: "ldap", AuthService: "ldap",
AuthData: model.NewString("999099"), AuthData: model.NewString("999099"),
} }
_, resp := th.SystemAdminClient.CreateUser(user) u, resp := th.SystemAdminClient.CreateUser(user)
CheckNoError(t, resp)
_, resp = th.SystemAdminClient.PermanentDeleteUser(u.Id)
CheckNoError(t, resp) CheckNoError(t, resp)
}) })
t.Run("LocalClient", func(t *testing.T) { t.Run("LocalClient", func(t *testing.T) {
@@ -126,7 +130,9 @@ func TestCreateUserInputFilter(t *testing.T) {
AuthService: "ldap", AuthService: "ldap",
AuthData: model.NewString("999100"), AuthData: model.NewString("999100"),
} }
_, resp := th.LocalClient.CreateUser(user) u, resp := th.LocalClient.CreateUser(user)
CheckNoError(t, resp)
_, resp = th.LocalClient.PermanentDeleteUser(u.Id)
CheckNoError(t, resp) CheckNoError(t, resp)
}) })
}) })
@@ -143,16 +149,19 @@ func TestCreateUserInputFilter(t *testing.T) {
*cfg.TeamSettings.EnableOpenServer = true *cfg.TeamSettings.EnableOpenServer = true
*cfg.TeamSettings.EnableUserCreation = true *cfg.TeamSettings.EnableUserCreation = true
*cfg.TeamSettings.RestrictCreationToDomains = "" *cfg.TeamSettings.RestrictCreationToDomains = ""
*cfg.ServiceSettings.EnableAPIUserDeletion = true
}) })
th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) { th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
emailAddr := strconv.Itoa(rand.Intn(1000)) + "+testinvalidrole@mattermost.com" emailAddr := "foobar+testinvalidrole@mattermost.com"
user := &model.User{Email: emailAddr, Password: "Password1", Username: GenerateTestUsername(), Roles: "system_user system_admin"} user := &model.User{Email: emailAddr, Password: "Password1", Username: GenerateTestUsername(), Roles: "system_user system_admin"}
_, resp := client.CreateUser(user) _, resp := client.CreateUser(user)
CheckNoError(t, resp) CheckNoError(t, resp)
ruser, err := th.App.GetUserByEmail(emailAddr) ruser, err := th.App.GetUserByEmail(emailAddr)
require.Nil(t, err) require.Nil(t, err)
assert.NotEqual(t, ruser.Roles, "system_user system_admin") assert.NotEqual(t, ruser.Roles, "system_user system_admin")
_, resp = client.PermanentDeleteUser(ruser.Id)
CheckNoError(t, resp)
}, "InvalidRole") }, "InvalidRole")
}) })