MM-30918 Fix product notice check when user setting is missing (#16396)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
5642d3106e
Коммит
bcb861717e
@@ -19,7 +19,7 @@ import (
|
|||||||
|
|
||||||
"github.com/Masterminds/semver/v3"
|
"github.com/Masterminds/semver/v3"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/reflog/dateconstraints"
|
date_constraints "github.com/reflog/dateconstraints"
|
||||||
)
|
)
|
||||||
|
|
||||||
const MAX_REPEAT_VIEWINGS = 3
|
const MAX_REPEAT_VIEWINGS = 3
|
||||||
@@ -179,7 +179,7 @@ func validateUserConfigEntry(preferences store.PreferenceStore, userId string, k
|
|||||||
}
|
}
|
||||||
pref, err := preferences.Get(userId, parts[0], parts[1])
|
pref, err := preferences.Get(userId, parts[0], parts[1])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, nil
|
||||||
}
|
}
|
||||||
return pref.Value == expectedValue, nil
|
return pref.Value == expectedValue, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,15 +4,17 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/mattermost/mattermost-server/v5/model"
|
|
||||||
"github.com/mattermost/mattermost-server/v5/store/storetest/mocks"
|
|
||||||
"github.com/stretchr/testify/require"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/mattermost/mattermost-server/v5/model"
|
||||||
|
"github.com/mattermost/mattermost-server/v5/store/storetest/mocks"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNoticeValidation(t *testing.T) {
|
func TestNoticeValidation(t *testing.T) {
|
||||||
@@ -37,6 +39,7 @@ func TestNoticeValidation(t *testing.T) {
|
|||||||
mockUserStore.On("Count", model.UserCountOptions{IncludeBotAccounts: false, IncludeDeleted: true, ExcludeRegularUsers: false, TeamId: "", ChannelId: "", ViewRestrictions: (*model.ViewUsersRestrictions)(nil), Roles: []string(nil), ChannelRoles: []string(nil), TeamRoles: []string(nil)}).Return(int64(1), nil)
|
mockUserStore.On("Count", model.UserCountOptions{IncludeBotAccounts: false, IncludeDeleted: true, ExcludeRegularUsers: false, TeamId: "", ChannelId: "", ViewRestrictions: (*model.ViewUsersRestrictions)(nil), Roles: []string(nil), ChannelRoles: []string(nil), TeamRoles: []string(nil)}).Return(int64(1), nil)
|
||||||
mockPreferenceStore.On("Get", "test", "Stuff", "Data").Return(&model.Preference{Value: "test2"}, nil)
|
mockPreferenceStore.On("Get", "test", "Stuff", "Data").Return(&model.Preference{Value: "test2"}, nil)
|
||||||
mockPreferenceStore.On("Get", "test", "Stuff", "Data2").Return(&model.Preference{Value: "test"}, nil)
|
mockPreferenceStore.On("Get", "test", "Stuff", "Data2").Return(&model.Preference{Value: "test"}, nil)
|
||||||
|
mockPreferenceStore.On("Get", "test", "Stuff", "Data3").Return(nil, errors.New("Error!"))
|
||||||
mockPostStore.On("GetMaxPostSize").Return(65535, nil)
|
mockPostStore.On("GetMaxPostSize").Return(65535, nil)
|
||||||
|
|
||||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||||
@@ -160,6 +163,18 @@ func TestNoticeValidation(t *testing.T) {
|
|||||||
wantErr: false,
|
wantErr: false,
|
||||||
wantOk: true,
|
wantOk: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "notice with user check for property not in database",
|
||||||
|
args: args{
|
||||||
|
notice: &model.ProductNotice{
|
||||||
|
Conditions: model.Conditions{
|
||||||
|
UserConfig: map[string]interface{}{"Stuff.Data3": "stuff"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
wantErr: false,
|
||||||
|
wantOk: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "notice with server version check",
|
name: "notice with server version check",
|
||||||
args: args{
|
args: args{
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user