[MM-37557] Move error out of client4 response (#18101)
* Return an error seperately from Response * Remove BuildErrorResponse * Drop Response.Error from model/client4.go * Migrate require.Nil checks * Migrate require.NotNil checks * More manual fixes * Move error check out of CheckOKStatus and CheckCreatedStatus * Move error check out of CheckForbiddenStatus * Move error check out of CheckUnauthorizedStatus * Move error check out of CheckNotFoundStatus * Move error check out of CheckBadRequestStatus * Move error check out of CheckNotImplementedStatus and CheckRequestEntityTooLargeStatus * Move error check out of CheckInternalErrorStatus * Move error check out of CheckServiceUnavailableStatus * Remove error check from checkHTTPStatus * Remove remaining references to Response.Error * Check previously unchecked errors * Manually fix compile and linter errors * Return error in CreateWebSocket methods * Return error instead of *AppError in DoApi methods * Manually fix bad replacments * Conistently return Response and error * Use err instead of seperate bool return value to indicate success * Reduce ussage of model.AppError in web/oauth_test.go * Remove client4.Must * Check error in buf.ReadFrom * Fix failing tests
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
96593580ae
Коммит
a8ca5c423f
@@ -17,7 +17,7 @@ import (
|
||||
func TestGetPreferences(t *testing.T) {
|
||||
th := Setup(t).InitBasic()
|
||||
defer th.TearDown()
|
||||
Client := th.Client
|
||||
client := th.Client
|
||||
|
||||
// recreate basic user (cached has no default preferences)
|
||||
th.BasicUser = th.CreateUser()
|
||||
@@ -44,10 +44,10 @@ func TestGetPreferences(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
Client.UpdatePreferences(user1.Id, &preferences1)
|
||||
client.UpdatePreferences(user1.Id, &preferences1)
|
||||
|
||||
prefs, resp := Client.GetPreferences(user1.Id)
|
||||
CheckNoError(t, resp)
|
||||
prefs, _, err := client.GetPreferences(user1.Id)
|
||||
require.NoError(t, err)
|
||||
|
||||
// 5 because we have 2 initial preferences tutorial_step and recommended_next_steps added when creating a new user
|
||||
require.Equal(t, len(prefs), 5, "received the wrong number of preferences")
|
||||
@@ -60,23 +60,25 @@ func TestGetPreferences(t *testing.T) {
|
||||
th.BasicUser2 = th.CreateUser()
|
||||
th.LoginBasic2()
|
||||
|
||||
prefs, resp = Client.GetPreferences(th.BasicUser2.Id)
|
||||
CheckNoError(t, resp)
|
||||
prefs, _, err = client.GetPreferences(th.BasicUser2.Id)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Greater(t, len(prefs), 0, "received the wrong number of preferences")
|
||||
|
||||
_, resp = Client.GetPreferences(th.BasicUser.Id)
|
||||
_, resp, err := client.GetPreferences(th.BasicUser.Id)
|
||||
require.Error(t, err)
|
||||
CheckForbiddenStatus(t, resp)
|
||||
|
||||
Client.Logout()
|
||||
_, resp = Client.GetPreferences(th.BasicUser2.Id)
|
||||
client.Logout()
|
||||
_, resp, err = client.GetPreferences(th.BasicUser2.Id)
|
||||
require.Error(t, err)
|
||||
CheckUnauthorizedStatus(t, resp)
|
||||
}
|
||||
|
||||
func TestGetPreferencesByCategory(t *testing.T) {
|
||||
th := Setup(t).InitBasic()
|
||||
defer th.TearDown()
|
||||
Client := th.Client
|
||||
client := th.Client
|
||||
|
||||
th.LoginBasic()
|
||||
user1 := th.BasicUser
|
||||
@@ -100,38 +102,43 @@ func TestGetPreferencesByCategory(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
Client.UpdatePreferences(user1.Id, &preferences1)
|
||||
client.UpdatePreferences(user1.Id, &preferences1)
|
||||
|
||||
prefs, resp := Client.GetPreferencesByCategory(user1.Id, category)
|
||||
CheckNoError(t, resp)
|
||||
prefs, _, err := client.GetPreferencesByCategory(user1.Id, category)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, len(prefs), 2, "received the wrong number of preferences")
|
||||
|
||||
_, resp = Client.GetPreferencesByCategory(user1.Id, "junk")
|
||||
_, resp, err := client.GetPreferencesByCategory(user1.Id, "junk")
|
||||
require.Error(t, err)
|
||||
CheckNotFoundStatus(t, resp)
|
||||
|
||||
th.LoginBasic2()
|
||||
|
||||
_, resp = Client.GetPreferencesByCategory(th.BasicUser2.Id, category)
|
||||
_, resp, err = client.GetPreferencesByCategory(th.BasicUser2.Id, category)
|
||||
require.Error(t, err)
|
||||
CheckNotFoundStatus(t, resp)
|
||||
|
||||
_, resp = Client.GetPreferencesByCategory(user1.Id, category)
|
||||
_, resp, err = client.GetPreferencesByCategory(user1.Id, category)
|
||||
require.Error(t, err)
|
||||
CheckForbiddenStatus(t, resp)
|
||||
|
||||
prefs, resp = Client.GetPreferencesByCategory(th.BasicUser2.Id, "junk")
|
||||
prefs, resp, err = client.GetPreferencesByCategory(th.BasicUser2.Id, "junk")
|
||||
require.Error(t, err)
|
||||
CheckNotFoundStatus(t, resp)
|
||||
|
||||
require.Equal(t, len(prefs), 0, "received the wrong number of preferences")
|
||||
|
||||
Client.Logout()
|
||||
_, resp = Client.GetPreferencesByCategory(th.BasicUser2.Id, category)
|
||||
client.Logout()
|
||||
_, resp, err = client.GetPreferencesByCategory(th.BasicUser2.Id, category)
|
||||
require.Error(t, err)
|
||||
CheckUnauthorizedStatus(t, resp)
|
||||
}
|
||||
|
||||
func TestGetPreferenceByCategoryAndName(t *testing.T) {
|
||||
th := Setup(t).InitBasic()
|
||||
defer th.TearDown()
|
||||
Client := th.Client
|
||||
client := th.Client
|
||||
|
||||
th.LoginBasic()
|
||||
user := th.BasicUser
|
||||
@@ -153,32 +160,36 @@ func TestGetPreferenceByCategoryAndName(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
Client.UpdatePreferences(user.Id, &preferences)
|
||||
client.UpdatePreferences(user.Id, &preferences)
|
||||
|
||||
pref, resp := Client.GetPreferenceByCategoryAndName(user.Id, model.PreferenceCategoryDirectChannelShow, name)
|
||||
CheckNoError(t, resp)
|
||||
pref, _, err := client.GetPreferenceByCategoryAndName(user.Id, model.PreferenceCategoryDirectChannelShow, name)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, preferences[0].UserId, pref.UserId, "UserId preference not saved")
|
||||
require.Equal(t, preferences[0].Category, pref.Category, "Category preference not saved")
|
||||
require.Equal(t, preferences[0].Name, pref.Name, "Name preference not saved")
|
||||
|
||||
preferences[0].Value = model.NewId()
|
||||
Client.UpdatePreferences(user.Id, &preferences)
|
||||
client.UpdatePreferences(user.Id, &preferences)
|
||||
|
||||
_, resp = Client.GetPreferenceByCategoryAndName(user.Id, "junk", preferences[0].Name)
|
||||
_, resp, err := client.GetPreferenceByCategoryAndName(user.Id, "junk", preferences[0].Name)
|
||||
require.Error(t, err)
|
||||
CheckBadRequestStatus(t, resp)
|
||||
|
||||
_, resp = Client.GetPreferenceByCategoryAndName(user.Id, preferences[0].Category, "junk")
|
||||
_, resp, err = client.GetPreferenceByCategoryAndName(user.Id, preferences[0].Category, "junk")
|
||||
require.Error(t, err)
|
||||
CheckBadRequestStatus(t, resp)
|
||||
|
||||
_, resp = Client.GetPreferenceByCategoryAndName(th.BasicUser2.Id, preferences[0].Category, "junk")
|
||||
_, resp, err = client.GetPreferenceByCategoryAndName(th.BasicUser2.Id, preferences[0].Category, "junk")
|
||||
require.Error(t, err)
|
||||
CheckForbiddenStatus(t, resp)
|
||||
|
||||
_, resp = Client.GetPreferenceByCategoryAndName(user.Id, preferences[0].Category, preferences[0].Name)
|
||||
CheckNoError(t, resp)
|
||||
_, _, err = client.GetPreferenceByCategoryAndName(user.Id, preferences[0].Category, preferences[0].Name)
|
||||
require.NoError(t, err)
|
||||
|
||||
Client.Logout()
|
||||
_, resp = Client.GetPreferenceByCategoryAndName(user.Id, preferences[0].Category, preferences[0].Name)
|
||||
client.Logout()
|
||||
_, resp, err = client.GetPreferenceByCategoryAndName(user.Id, preferences[0].Category, preferences[0].Name)
|
||||
require.Error(t, err)
|
||||
CheckUnauthorizedStatus(t, resp)
|
||||
|
||||
}
|
||||
@@ -186,7 +197,7 @@ func TestGetPreferenceByCategoryAndName(t *testing.T) {
|
||||
func TestUpdatePreferences(t *testing.T) {
|
||||
th := Setup(t).InitBasic()
|
||||
defer th.TearDown()
|
||||
Client := th.Client
|
||||
client := th.Client
|
||||
|
||||
th.LoginBasic()
|
||||
user1 := th.BasicUser
|
||||
@@ -210,8 +221,8 @@ func TestUpdatePreferences(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
_, resp := Client.UpdatePreferences(user1.Id, &preferences1)
|
||||
CheckNoError(t, resp)
|
||||
_, err := client.UpdatePreferences(user1.Id, &preferences1)
|
||||
require.NoError(t, err)
|
||||
|
||||
preferences := model.Preferences{
|
||||
{
|
||||
@@ -221,7 +232,8 @@ func TestUpdatePreferences(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
_, resp = Client.UpdatePreferences(user1.Id, &preferences)
|
||||
resp, err := client.UpdatePreferences(user1.Id, &preferences)
|
||||
require.Error(t, err)
|
||||
CheckForbiddenStatus(t, resp)
|
||||
|
||||
preferences = model.Preferences{
|
||||
@@ -231,14 +243,17 @@ func TestUpdatePreferences(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
_, resp = Client.UpdatePreferences(user1.Id, &preferences)
|
||||
resp, err = client.UpdatePreferences(user1.Id, &preferences)
|
||||
require.Error(t, err)
|
||||
CheckBadRequestStatus(t, resp)
|
||||
|
||||
_, resp = Client.UpdatePreferences(th.BasicUser2.Id, &preferences)
|
||||
resp, err = client.UpdatePreferences(th.BasicUser2.Id, &preferences)
|
||||
require.Error(t, err)
|
||||
CheckForbiddenStatus(t, resp)
|
||||
|
||||
Client.Logout()
|
||||
_, resp = Client.UpdatePreferences(user1.Id, &preferences1)
|
||||
client.Logout()
|
||||
resp, err = client.UpdatePreferences(user1.Id, &preferences1)
|
||||
require.Error(t, err)
|
||||
CheckUnauthorizedStatus(t, resp)
|
||||
}
|
||||
|
||||
@@ -247,7 +262,7 @@ func TestUpdatePreferencesWebsocket(t *testing.T) {
|
||||
defer th.TearDown()
|
||||
|
||||
WebSocketClient, err := th.CreateWebSocketClient()
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
WebSocketClient.Listen()
|
||||
time.Sleep(300 * time.Millisecond)
|
||||
@@ -268,8 +283,8 @@ func TestUpdatePreferencesWebsocket(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
_, resp := th.Client.UpdatePreferences(userId, preferences)
|
||||
CheckNoError(t, resp)
|
||||
_, err = th.Client.UpdatePreferences(userId, preferences)
|
||||
require.NoError(t, err)
|
||||
|
||||
timeout := time.After(300 * time.Millisecond)
|
||||
|
||||
@@ -308,22 +323,22 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
team1 := th.CreateTeam()
|
||||
th.LinkUserToTeam(user, team1)
|
||||
|
||||
_, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
_, _, err := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
|
||||
channel := th.CreateChannelWithClientAndTeam(th.Client, model.ChannelTypeOpen, team1.Id)
|
||||
th.AddUserToChannel(user, channel)
|
||||
|
||||
// Confirm that the sidebar is populated correctly to begin with
|
||||
categories, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
require.Contains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
// Favorite the channel
|
||||
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
_, err = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -331,18 +346,18 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
Value: "true",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Confirm that the channel was added to the Favorites
|
||||
categories, resp = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.Contains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
assert.NotContains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
// And unfavorite the channel
|
||||
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
_, err = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -350,11 +365,11 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
Value: "false",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// The channel should've been removed from the Favorites
|
||||
categories, resp = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
@@ -376,7 +391,7 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
dmChannel := th.CreateDmChannel(user2)
|
||||
|
||||
// Favorite the channel
|
||||
_, resp := th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
_, err := th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -384,25 +399,25 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
Value: "true",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Confirm that the channel was added to the Favorites on all teams
|
||||
categories, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.Contains(t, categories.Categories[0].Channels, dmChannel.Id)
|
||||
require.Equal(t, model.SidebarCategoryDirectMessages, categories.Categories[2].Type)
|
||||
assert.NotContains(t, categories.Categories[2].Channels, dmChannel.Id)
|
||||
|
||||
categories, resp = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team2.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team2.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.Contains(t, categories.Categories[0].Channels, dmChannel.Id)
|
||||
require.Equal(t, model.SidebarCategoryDirectMessages, categories.Categories[2].Type)
|
||||
assert.NotContains(t, categories.Categories[2].Channels, dmChannel.Id)
|
||||
|
||||
// And unfavorite the channel
|
||||
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
_, err = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -410,18 +425,18 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
Value: "false",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// The channel should've been removed from the Favorites on all teams
|
||||
categories, resp = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, dmChannel.Id)
|
||||
require.Equal(t, model.SidebarCategoryDirectMessages, categories.Categories[2].Type)
|
||||
assert.Contains(t, categories.Categories[2].Channels, dmChannel.Id)
|
||||
|
||||
categories, resp = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team2.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team2.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, dmChannel.Id)
|
||||
require.Equal(t, model.SidebarCategoryDirectMessages, categories.Categories[2].Type)
|
||||
@@ -442,32 +457,32 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
th.LinkUserToTeam(user, team1)
|
||||
th.LinkUserToTeam(user2, team1)
|
||||
|
||||
_, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
_, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
_, _, err := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
_, _, err = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
|
||||
channel := th.CreateChannelWithClientAndTeam(th.Client, model.ChannelTypeOpen, team1.Id)
|
||||
th.AddUserToChannel(user, channel)
|
||||
th.AddUserToChannel(user2, channel)
|
||||
|
||||
// Confirm that the sidebar is populated correctly to begin with
|
||||
categories, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
require.Contains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
categories, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
require.Contains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
// Favorite the channel
|
||||
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
_, err = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -475,18 +490,18 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
Value: "true",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Confirm that the channel was not added to Favorites for the second user
|
||||
categories, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.NotContains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
assert.Contains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
// Favorite the channel for the second user
|
||||
_, resp = client2.UpdatePreferences(user2.Id, &model.Preferences{
|
||||
_, err = client2.UpdatePreferences(user2.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user2.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -494,18 +509,18 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
Value: "true",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Confirm that the channel is now in the Favorites for the second user
|
||||
categories, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.Contains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
assert.NotContains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
// And unfavorite the channel
|
||||
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
_, err = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -513,11 +528,11 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
Value: "false",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// The channel should still be in the second user's favorites
|
||||
categories, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.Contains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
@@ -528,11 +543,11 @@ func TestUpdateSidebarPreferences(t *testing.T) {
|
||||
func TestDeletePreferences(t *testing.T) {
|
||||
th := Setup(t).InitBasic()
|
||||
defer th.TearDown()
|
||||
Client := th.Client
|
||||
client := th.Client
|
||||
|
||||
th.LoginBasic()
|
||||
|
||||
prefs, _ := Client.GetPreferences(th.BasicUser.Id)
|
||||
prefs, _, _ := client.GetPreferences(th.BasicUser.Id)
|
||||
originalCount := len(prefs)
|
||||
|
||||
// save 10 preferences
|
||||
@@ -546,27 +561,30 @@ func TestDeletePreferences(t *testing.T) {
|
||||
preferences = append(preferences, preference)
|
||||
}
|
||||
|
||||
Client.UpdatePreferences(th.BasicUser.Id, &preferences)
|
||||
client.UpdatePreferences(th.BasicUser.Id, &preferences)
|
||||
|
||||
// delete 10 preferences
|
||||
th.LoginBasic2()
|
||||
|
||||
_, resp := Client.DeletePreferences(th.BasicUser2.Id, &preferences)
|
||||
resp, err := client.DeletePreferences(th.BasicUser2.Id, &preferences)
|
||||
require.Error(t, err)
|
||||
CheckForbiddenStatus(t, resp)
|
||||
|
||||
th.LoginBasic()
|
||||
|
||||
_, resp = Client.DeletePreferences(th.BasicUser.Id, &preferences)
|
||||
CheckNoError(t, resp)
|
||||
_, err = client.DeletePreferences(th.BasicUser.Id, &preferences)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, resp = Client.DeletePreferences(th.BasicUser2.Id, &preferences)
|
||||
resp, err = client.DeletePreferences(th.BasicUser2.Id, &preferences)
|
||||
require.Error(t, err)
|
||||
CheckForbiddenStatus(t, resp)
|
||||
|
||||
prefs, _ = Client.GetPreferences(th.BasicUser.Id)
|
||||
prefs, _, _ = client.GetPreferences(th.BasicUser.Id)
|
||||
require.Len(t, prefs, originalCount, "should've deleted preferences")
|
||||
|
||||
Client.Logout()
|
||||
_, resp = Client.DeletePreferences(th.BasicUser.Id, &preferences)
|
||||
client.Logout()
|
||||
resp, err = client.DeletePreferences(th.BasicUser.Id, &preferences)
|
||||
require.Error(t, err)
|
||||
CheckUnauthorizedStatus(t, resp)
|
||||
}
|
||||
|
||||
@@ -587,18 +605,18 @@ func TestDeletePreferencesWebsocket(t *testing.T) {
|
||||
Name: model.NewId(),
|
||||
},
|
||||
}
|
||||
_, resp := th.Client.UpdatePreferences(userId, preferences)
|
||||
CheckNoError(t, resp)
|
||||
_, err := th.Client.UpdatePreferences(userId, preferences)
|
||||
require.NoError(t, err)
|
||||
|
||||
WebSocketClient, err := th.CreateWebSocketClient()
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
WebSocketClient.Listen()
|
||||
wsResp := <-WebSocketClient.ResponseChannel
|
||||
require.Equal(t, model.StatusOk, wsResp.Status, "should have responded OK to authentication challenge")
|
||||
|
||||
_, resp = th.Client.DeletePreferences(userId, preferences)
|
||||
CheckNoError(t, resp)
|
||||
_, err = th.Client.DeletePreferences(userId, preferences)
|
||||
require.NoError(t, err)
|
||||
|
||||
timeout := time.After(30000 * time.Millisecond)
|
||||
|
||||
@@ -637,22 +655,22 @@ func TestDeleteSidebarPreferences(t *testing.T) {
|
||||
team1 := th.CreateTeam()
|
||||
th.LinkUserToTeam(user, team1)
|
||||
|
||||
_, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
_, _, err := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
|
||||
channel := th.CreateChannelWithClientAndTeam(th.Client, model.ChannelTypeOpen, team1.Id)
|
||||
th.AddUserToChannel(user, channel)
|
||||
|
||||
// Confirm that the sidebar is populated correctly to begin with
|
||||
categories, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
require.Contains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
// Favorite the channel
|
||||
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
_, err = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -660,29 +678,28 @@ func TestDeleteSidebarPreferences(t *testing.T) {
|
||||
Value: "true",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
|
||||
require.NoError(t, err)
|
||||
// Confirm that the channel was added to the Favorites
|
||||
categories, resp = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.Contains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
assert.NotContains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
// And unfavorite the channel by deleting the preference
|
||||
_, resp = th.Client.DeletePreferences(user.Id, &model.Preferences{
|
||||
_, err = th.Client.DeletePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
Name: channel.Id,
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// The channel should've been removed from the Favorites
|
||||
categories, resp = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
@@ -704,7 +721,7 @@ func TestDeleteSidebarPreferences(t *testing.T) {
|
||||
dmChannel := th.CreateDmChannel(user2)
|
||||
|
||||
// Favorite the channel
|
||||
_, resp := th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
_, err := th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -712,43 +729,43 @@ func TestDeleteSidebarPreferences(t *testing.T) {
|
||||
Value: "true",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Confirm that the channel was added to the Favorites on all teams
|
||||
categories, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.Contains(t, categories.Categories[0].Channels, dmChannel.Id)
|
||||
require.Equal(t, model.SidebarCategoryDirectMessages, categories.Categories[2].Type)
|
||||
assert.NotContains(t, categories.Categories[2].Channels, dmChannel.Id)
|
||||
|
||||
categories, resp = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team2.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team2.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.Contains(t, categories.Categories[0].Channels, dmChannel.Id)
|
||||
require.Equal(t, model.SidebarCategoryDirectMessages, categories.Categories[2].Type)
|
||||
assert.NotContains(t, categories.Categories[2].Channels, dmChannel.Id)
|
||||
|
||||
// And unfavorite the channel by deleting the preference
|
||||
_, resp = th.Client.DeletePreferences(user.Id, &model.Preferences{
|
||||
_, err = th.Client.DeletePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
Name: dmChannel.Id,
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// The channel should've been removed from the Favorites on all teams
|
||||
categories, resp = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, dmChannel.Id)
|
||||
require.Equal(t, model.SidebarCategoryDirectMessages, categories.Categories[2].Type)
|
||||
assert.Contains(t, categories.Categories[2].Channels, dmChannel.Id)
|
||||
|
||||
categories, resp = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team2.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team2.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, dmChannel.Id)
|
||||
require.Equal(t, model.SidebarCategoryDirectMessages, categories.Categories[2].Type)
|
||||
@@ -769,32 +786,32 @@ func TestDeleteSidebarPreferences(t *testing.T) {
|
||||
th.LinkUserToTeam(user, team1)
|
||||
th.LinkUserToTeam(user2, team1)
|
||||
|
||||
_, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
_, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
_, _, err := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
_, _, err = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
|
||||
channel := th.CreateChannelWithClientAndTeam(th.Client, model.ChannelTypeOpen, team1.Id)
|
||||
th.AddUserToChannel(user, channel)
|
||||
th.AddUserToChannel(user2, channel)
|
||||
|
||||
// Confirm that the sidebar is populated correctly to begin with
|
||||
categories, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
require.Contains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
categories, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
require.NotContains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
require.Contains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
// Favorite the channel for both users
|
||||
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
_, err = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -802,9 +819,9 @@ func TestDeleteSidebarPreferences(t *testing.T) {
|
||||
Value: "true",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, resp = client2.UpdatePreferences(user2.Id, &model.Preferences{
|
||||
_, err = client2.UpdatePreferences(user2.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user2.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -812,18 +829,18 @@ func TestDeleteSidebarPreferences(t *testing.T) {
|
||||
Value: "true",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Confirm that the channel is in the Favorites for the second user
|
||||
categories, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.Contains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
assert.NotContains(t, categories.Categories[1].Channels, channel.Id)
|
||||
|
||||
// And unfavorite the channel for the first user by deleting the preference
|
||||
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
_, err = th.Client.UpdatePreferences(user.Id, &model.Preferences{
|
||||
{
|
||||
UserId: user.Id,
|
||||
Category: model.PreferenceCategoryFavoriteChannel,
|
||||
@@ -831,11 +848,11 @@ func TestDeleteSidebarPreferences(t *testing.T) {
|
||||
Value: "false",
|
||||
},
|
||||
})
|
||||
require.Nil(t, resp.Error)
|
||||
require.NoError(t, err)
|
||||
|
||||
// The channel should still be in the second user's favorites
|
||||
categories, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.Nil(t, resp.Error)
|
||||
categories, _, err = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
|
||||
assert.Contains(t, categories.Categories[0].Channels, channel.Id)
|
||||
require.Equal(t, model.SidebarCategoryChannels, categories.Categories[1].Type)
|
||||
|
||||
Ссылка в новой задаче
Block a user