check authdata for different format (#17577)
* check authdata for different format * add mocks, fix lint * rename function * update auth-data with new format * update assert Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
a4f7df6f6e
Коммит
2f33b52d8a
@@ -15,10 +15,12 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/mock"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost-server/v5/app/request"
|
||||
"github.com/mattermost/mattermost-server/v5/einterfaces"
|
||||
"github.com/mattermost/mattermost-server/v5/einterfaces/mocks"
|
||||
"github.com/mattermost/mattermost-server/v5/model"
|
||||
oauthgitlab "github.com/mattermost/mattermost-server/v5/model/gitlab"
|
||||
"github.com/mattermost/mattermost-server/v5/store"
|
||||
@@ -82,20 +84,51 @@ func TestCreateOAuthUser(t *testing.T) {
|
||||
*cfg.GitLabSettings.Enable = true
|
||||
})
|
||||
|
||||
glUser := oauthgitlab.GitLabUser{Id: 42, Username: "o" + model.NewId(), Email: model.NewId() + "@simulator.amazonses.com", Name: "Joram Wilander"}
|
||||
t.Run("create user successfully", func(t *testing.T) {
|
||||
glUser := oauthgitlab.GitLabUser{Id: 42, Username: "o" + model.NewId(), Email: model.NewId() + "@simulator.amazonses.com", Name: "Joram Wilander"}
|
||||
json := glUser.ToJson()
|
||||
|
||||
json := glUser.ToJson()
|
||||
user, err := th.App.CreateOAuthUser(th.Context, model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id, nil)
|
||||
require.Nil(t, err)
|
||||
user, err := th.App.CreateOAuthUser(th.Context, model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id, nil)
|
||||
require.Nil(t, err)
|
||||
|
||||
require.Equal(t, glUser.Username, user.Username, "usernames didn't match")
|
||||
require.Equal(t, glUser.Username, user.Username, "usernames didn't match")
|
||||
|
||||
th.App.PermanentDeleteUser(th.Context, user)
|
||||
th.App.PermanentDeleteUser(th.Context, user)
|
||||
})
|
||||
|
||||
*th.App.Config().TeamSettings.EnableUserCreation = false
|
||||
t.Run("user exists, update authdata successfully", func(t *testing.T) {
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.Office365Settings.Enable = true
|
||||
})
|
||||
|
||||
_, err = th.App.CreateOAuthUser(th.Context, model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id, nil)
|
||||
require.NotNil(t, err, "should have failed - user creation disabled")
|
||||
dbUser := th.BasicUser
|
||||
|
||||
// mock oAuth Provider, return data
|
||||
mockUser := &model.User{Id: "abcdef", AuthData: model.NewString("e7110007-64be-43d8-9840-4a7e9c26b710"), Email: dbUser.Email}
|
||||
providerMock := &mocks.OauthProvider{}
|
||||
providerMock.On("IsSameUser", mock.Anything, mock.Anything).Return(true)
|
||||
providerMock.On("GetUserFromJson", mock.Anything, mock.Anything).Return(mockUser, nil)
|
||||
einterfaces.RegisterOauthProvider(model.SERVICE_OFFICE365, providerMock)
|
||||
|
||||
// Update user to be OAuth, formatting to match Office365 OAuth data
|
||||
s, er2 := th.App.Srv().Store.User().UpdateAuthData(dbUser.Id, model.SERVICE_OFFICE365, model.NewString("e711000764be43d898404a7e9c26b710"), "", false)
|
||||
assert.NoError(t, er2)
|
||||
assert.Equal(t, dbUser.Id, s)
|
||||
|
||||
// data passed doesn't matter as return is mocked
|
||||
_, err := th.App.CreateOAuthUser(th.Context, model.SERVICE_OFFICE365, strings.NewReader("{}"), th.BasicTeam.Id, nil)
|
||||
assert.Nil(t, err)
|
||||
u, er := th.App.Srv().Store.User().GetByEmail(dbUser.Email)
|
||||
assert.NoError(t, er)
|
||||
// make sure authdata is updated
|
||||
assert.Equal(t, "e7110007-64be-43d8-9840-4a7e9c26b710", *u.AuthData)
|
||||
})
|
||||
|
||||
t.Run("user creation disabled", func(t *testing.T) {
|
||||
*th.App.Config().TeamSettings.EnableUserCreation = false
|
||||
_, err := th.App.CreateOAuthUser(th.Context, model.USER_AUTH_SERVICE_GITLAB, strings.NewReader("{}"), th.BasicTeam.Id, nil)
|
||||
require.NotNil(t, err, "should have failed - user creation disabled")
|
||||
})
|
||||
}
|
||||
|
||||
func TestCreateProfileImage(t *testing.T) {
|
||||
|
||||
Ссылка в новой задаче
Block a user