From 11cdd2b66b13a44e9613c8a5ae3df6f42388cb80 Mon Sep 17 00:00:00 2001 From: Devin Binnie <52460000+devinbinnie@users.noreply.github.com> Date: Tue, 19 Sep 2023 08:49:51 +0200 Subject: [PATCH] Fix flaky/incorrect desktop token test, clarify the parameter names (#24565) Co-authored-by: Mattermost Build --- server/channels/app/app_iface.go | 2 +- server/channels/app/desktop_login.go | 4 ++-- server/channels/app/desktop_login_test.go | 6 +++--- server/channels/app/opentracing/opentracing_layer.go | 4 ++-- .../channels/store/opentracinglayer/opentracinglayer.go | 4 ++-- server/channels/store/retrylayer/retrylayer.go | 4 ++-- server/channels/store/store.go | 2 +- .../channels/store/storetest/mocks/DesktopTokensStore.go | 8 ++++---- server/channels/store/timerlayer/timerlayer.go | 4 ++-- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/server/channels/app/app_iface.go b/server/channels/app/app_iface.go index 6d41d2e37a..4037b591b9 100644 --- a/server/channels/app/app_iface.go +++ b/server/channels/app/app_iface.go @@ -577,7 +577,7 @@ type AppIface interface { FilterUsersByVisible(viewer *model.User, otherUsers []*model.User) ([]*model.User, *model.AppError) FindTeamByName(name string) bool FinishSendAdminNotifyPost(trial bool, now int64, pluginBasedData map[string][]*model.NotifyAdminData) - GenerateAndSaveDesktopToken(expiryTime int64, user *model.User) (*string, *model.AppError) + GenerateAndSaveDesktopToken(createAt int64, user *model.User) (*string, *model.AppError) GenerateMfaSecret(userID string) (*model.MfaSecret, *model.AppError) GeneratePresignURLForExport(name string) (*model.PresignURLResponse, *model.AppError) GeneratePublicLink(siteURL string, info *model.FileInfo) string diff --git a/server/channels/app/desktop_login.go b/server/channels/app/desktop_login.go index 529e8a65fd..6d089dbcab 100644 --- a/server/channels/app/desktop_login.go +++ b/server/channels/app/desktop_login.go @@ -9,9 +9,9 @@ import ( "github.com/mattermost/mattermost/server/public/model" ) -func (a *App) GenerateAndSaveDesktopToken(expiryTime int64, user *model.User) (*string, *model.AppError) { +func (a *App) GenerateAndSaveDesktopToken(createAt int64, user *model.User) (*string, *model.AppError) { token := model.NewRandomString(64) - err := a.Srv().Store().DesktopTokens().Insert(token, expiryTime, user.Id) + err := a.Srv().Store().DesktopTokens().Insert(token, createAt, user.Id) if err != nil { // Delete any other related tokens if there's an error a.Srv().Store().DesktopTokens().DeleteByUserId(user.Id) diff --git a/server/channels/app/desktop_login_test.go b/server/channels/app/desktop_login_test.go index 56feaa1a93..b4726fe103 100644 --- a/server/channels/app/desktop_login_test.go +++ b/server/channels/app/desktop_login_test.go @@ -22,7 +22,7 @@ func TestGenerateAndSaveDesktopToken(t *testing.T) { defer th.TearDown() t.Run("generate token", func(t *testing.T) { - token, err := th.App.GenerateAndSaveDesktopToken(time.Now().Add(-TTL).Unix(), th.BasicUser) + token, err := th.App.GenerateAndSaveDesktopToken(time.Now().Unix(), th.BasicUser) assert.Nil(t, err) assert.NotNil(t, token) }) @@ -32,7 +32,7 @@ func TestValidateDesktopToken(t *testing.T) { th := Setup(t).InitBasic() defer th.TearDown() - authenticatedServerToken, err := th.App.GenerateAndSaveDesktopToken(time.Now().Add(-TTL).Unix(), th.BasicUser) + authenticatedServerToken, err := th.App.GenerateAndSaveDesktopToken(time.Now().Unix(), th.BasicUser) require.Nil(t, err) require.NotNil(t, authenticatedServerToken) @@ -41,7 +41,7 @@ func TestValidateDesktopToken(t *testing.T) { require.NotNil(t, expiredServerToken) badUser := model.User{Id: "some_garbage_user_id"} - badUserServerToken, err := th.App.GenerateAndSaveDesktopToken(time.Now().Add(-TTL).Unix(), &badUser) + badUserServerToken, err := th.App.GenerateAndSaveDesktopToken(time.Now().Unix(), &badUser) require.Nil(t, err) require.NotNil(t, badUserServerToken) diff --git a/server/channels/app/opentracing/opentracing_layer.go b/server/channels/app/opentracing/opentracing_layer.go index a54bd8c152..1dc9e79c0b 100644 --- a/server/channels/app/opentracing/opentracing_layer.go +++ b/server/channels/app/opentracing/opentracing_layer.go @@ -4540,7 +4540,7 @@ func (a *OpenTracingAppLayer) FinishSendAdminNotifyPost(trial bool, now int64, p a.app.FinishSendAdminNotifyPost(trial, now, pluginBasedData) } -func (a *OpenTracingAppLayer) GenerateAndSaveDesktopToken(expiryTime int64, user *model.User) (*string, *model.AppError) { +func (a *OpenTracingAppLayer) GenerateAndSaveDesktopToken(createAt int64, user *model.User) (*string, *model.AppError) { origCtx := a.ctx span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.GenerateAndSaveDesktopToken") @@ -4552,7 +4552,7 @@ func (a *OpenTracingAppLayer) GenerateAndSaveDesktopToken(expiryTime int64, user }() defer span.Finish() - resultVar0, resultVar1 := a.app.GenerateAndSaveDesktopToken(expiryTime, user) + resultVar0, resultVar1 := a.app.GenerateAndSaveDesktopToken(createAt, user) if resultVar1 != nil { span.LogFields(spanlog.Error(resultVar1)) diff --git a/server/channels/store/opentracinglayer/opentracinglayer.go b/server/channels/store/opentracinglayer/opentracinglayer.go index a34bb74b24..97eaacb9f0 100644 --- a/server/channels/store/opentracinglayer/opentracinglayer.go +++ b/server/channels/store/opentracinglayer/opentracinglayer.go @@ -3317,7 +3317,7 @@ func (s *OpenTracingLayerDesktopTokensStore) GetUserId(token string, minCreatedA return result, err } -func (s *OpenTracingLayerDesktopTokensStore) Insert(token string, createdAt int64, userId string) error { +func (s *OpenTracingLayerDesktopTokensStore) Insert(token string, createAt int64, userId string) error { origCtx := s.Root.Store.Context() span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "DesktopTokensStore.Insert") s.Root.Store.SetContext(newCtx) @@ -3326,7 +3326,7 @@ func (s *OpenTracingLayerDesktopTokensStore) Insert(token string, createdAt int6 }() defer span.Finish() - err := s.DesktopTokensStore.Insert(token, createdAt, userId) + err := s.DesktopTokensStore.Insert(token, createAt, userId) if err != nil { span.LogFields(spanlog.Error(err)) ext.Error.Set(span, true) diff --git a/server/channels/store/retrylayer/retrylayer.go b/server/channels/store/retrylayer/retrylayer.go index 8bbdf544fb..718bf087c5 100644 --- a/server/channels/store/retrylayer/retrylayer.go +++ b/server/channels/store/retrylayer/retrylayer.go @@ -3703,11 +3703,11 @@ func (s *RetryLayerDesktopTokensStore) GetUserId(token string, minCreatedAt int6 } -func (s *RetryLayerDesktopTokensStore) Insert(token string, createdAt int64, userId string) error { +func (s *RetryLayerDesktopTokensStore) Insert(token string, createAt int64, userId string) error { tries := 0 for { - err := s.DesktopTokensStore.Insert(token, createdAt, userId) + err := s.DesktopTokensStore.Insert(token, createAt, userId) if err == nil { return nil } diff --git a/server/channels/store/store.go b/server/channels/store/store.go index a8897d46ff..b902349a88 100644 --- a/server/channels/store/store.go +++ b/server/channels/store/store.go @@ -654,7 +654,7 @@ type TokenStore interface { type DesktopTokensStore interface { GetUserId(token string, minCreatedAt int64) (*string, error) - Insert(token string, createdAt int64, userId string) error + Insert(token string, createAt int64, userId string) error Delete(token string) error DeleteByUserId(userId string) error DeleteOlderThan(minCreatedAt int64) error diff --git a/server/channels/store/storetest/mocks/DesktopTokensStore.go b/server/channels/store/storetest/mocks/DesktopTokensStore.go index 969ae119f6..53412238be 100644 --- a/server/channels/store/storetest/mocks/DesktopTokensStore.go +++ b/server/channels/store/storetest/mocks/DesktopTokensStore.go @@ -79,13 +79,13 @@ func (_m *DesktopTokensStore) GetUserId(token string, minCreatedAt int64) (*stri return r0, r1 } -// Insert provides a mock function with given fields: token, createdAt, userId -func (_m *DesktopTokensStore) Insert(token string, createdAt int64, userId string) error { - ret := _m.Called(token, createdAt, userId) +// Insert provides a mock function with given fields: token, createAt, userId +func (_m *DesktopTokensStore) Insert(token string, createAt int64, userId string) error { + ret := _m.Called(token, createAt, userId) var r0 error if rf, ok := ret.Get(0).(func(string, int64, string) error); ok { - r0 = rf(token, createdAt, userId) + r0 = rf(token, createAt, userId) } else { r0 = ret.Error(0) } diff --git a/server/channels/store/timerlayer/timerlayer.go b/server/channels/store/timerlayer/timerlayer.go index 162db771fb..ef5716a960 100644 --- a/server/channels/store/timerlayer/timerlayer.go +++ b/server/channels/store/timerlayer/timerlayer.go @@ -3043,10 +3043,10 @@ func (s *TimerLayerDesktopTokensStore) GetUserId(token string, minCreatedAt int6 return result, err } -func (s *TimerLayerDesktopTokensStore) Insert(token string, createdAt int64, userId string) error { +func (s *TimerLayerDesktopTokensStore) Insert(token string, createAt int64, userId string) error { start := time.Now() - err := s.DesktopTokensStore.Insert(token, createdAt, userId) + err := s.DesktopTokensStore.Insert(token, createAt, userId) elapsed := float64(time.Since(start)) / float64(time.Second) if s.Root.Metrics != nil {