[MM-35316] Fix panic in app.CreateSidebarCategory (#17546)

* Fix returned error

* Fix expected error
Этот коммит содержится в:
Claudio Costa
2021-04-30 18:28:31 +02:00
коммит произвёл GitHub
родитель e414efac63
Коммит a7e6eef836
2 изменённых файлов: 19 добавлений и 4 удалений

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

@@ -248,10 +248,8 @@ func (s SqlChannelStore) CreateSidebarCategory(userId, teamId string, newCategor
categoriesWithOrder, err := s.getSidebarCategoriesT(transaction, userId, teamId)
if err != nil {
return nil, err
}
if len(categoriesWithOrder.Categories) < 1 {
return nil, errors.Wrap(err, "categories not found")
} else if len(categoriesWithOrder.Categories) == 0 {
return nil, store.NewErrNotFound("categories not found", fmt.Sprintf("userId=%s,teamId=%s", userId, teamId))
}
newOrder := categoriesWithOrder.Order
@@ -480,6 +478,7 @@ func (s SqlChannelStore) getSidebarCategoriesT(db dbSelecter, userId, teamId str
if _, err = db.Select(&categories, query, args...); err != nil {
return nil, store.NewErrNotFound("SidebarCategories", fmt.Sprintf("userId=%s,teamId=%s", userId, teamId))
}
for _, category := range categories {
var prevCategory *model.SidebarCategoryWithChannels
for _, existing := range oc.Categories {

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

@@ -363,6 +363,22 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
}
func testCreateSidebarCategory(t *testing.T, ss store.Store) {
t.Run("Creating category without initial categories should fail", func(t *testing.T) {
userId := model.NewId()
teamId := model.NewId()
// Create the category
created, err := ss.Channel().CreateSidebarCategory(userId, teamId, &model.SidebarCategoryWithChannels{
SidebarCategory: model.SidebarCategory{
DisplayName: model.NewId(),
},
})
require.Error(t, err)
var errNotFound *store.ErrNotFound
require.ErrorAs(t, err, &errNotFound)
require.Nil(t, created)
})
t.Run("should place the new category second if Favorites comes first", func(t *testing.T) {
userId := model.NewId()
teamId := model.NewId()