Replacing require.nil in api layer (#16906)
* Replacing require.nil in api layer * Fixing some tests * Fixing tests * Addressing PR review comments Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
9992a27a90
Коммит
31a80a5351
@@ -1231,10 +1231,10 @@ func TestSetBotIconImage(t *testing.T) {
|
||||
defer th.App.PermanentDeleteBot(bot.UserId)
|
||||
|
||||
badData, err := testutils.ReadTestFile("test.png")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
goodData, err := testutils.ReadTestFile("test.svg")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// SetBotIconImage only allowed for bots
|
||||
_, resp = th.SystemAdminClient.SetBotIconImage(user.Id, goodData)
|
||||
@@ -1268,14 +1268,14 @@ func TestSetBotIconImage(t *testing.T) {
|
||||
CheckNoError(t, resp)
|
||||
|
||||
fpath := fmt.Sprintf("/bots/%v/icon.svg", bot.UserId)
|
||||
actualData, err := th.App.ReadFile(fpath)
|
||||
require.Nil(t, err)
|
||||
actualData, appErr := th.App.ReadFile(fpath)
|
||||
require.Nil(t, appErr)
|
||||
require.NotNil(t, actualData)
|
||||
require.Equal(t, goodData, actualData)
|
||||
|
||||
info := &model.FileInfo{Path: fpath}
|
||||
err = th.cleanupTestFile(info)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestGetBotIconImage(t *testing.T) {
|
||||
@@ -1315,8 +1315,8 @@ func TestGetBotIconImage(t *testing.T) {
|
||||
|
||||
svgFile.Seek(0, 0)
|
||||
fpath := fmt.Sprintf("/bots/%v/icon.svg", bot.UserId)
|
||||
_, err = th.App.WriteFile(svgFile, fpath)
|
||||
require.Nil(t, err)
|
||||
_, appErr := th.App.WriteFile(svgFile, fpath)
|
||||
require.Nil(t, appErr)
|
||||
|
||||
data, resp = th.Client.GetBotIconImage(bot.UserId)
|
||||
CheckNoError(t, resp)
|
||||
@@ -1337,7 +1337,7 @@ func TestGetBotIconImage(t *testing.T) {
|
||||
|
||||
info := &model.FileInfo{Path: "/bots/" + bot.UserId + "/icon.svg"}
|
||||
err = th.cleanupTestFile(info)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestDeleteBotIconImage(t *testing.T) {
|
||||
@@ -1368,14 +1368,14 @@ func TestDeleteBotIconImage(t *testing.T) {
|
||||
|
||||
// Set an icon image
|
||||
svgData, err := testutils.ReadTestFile("test.svg")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, resp = th.Client.SetBotIconImage(bot.UserId, svgData)
|
||||
CheckNoError(t, resp)
|
||||
|
||||
fpath := fmt.Sprintf("/bots/%v/icon.svg", bot.UserId)
|
||||
exists, err := th.App.FileExists(fpath)
|
||||
require.Nil(t, err)
|
||||
exists, appErr := th.App.FileExists(fpath)
|
||||
require.Nil(t, appErr)
|
||||
require.True(t, exists, "icon.svg needs to exist for the user")
|
||||
|
||||
data, resp = th.Client.GetBotIconImage(bot.UserId)
|
||||
@@ -1399,8 +1399,8 @@ func TestDeleteBotIconImage(t *testing.T) {
|
||||
CheckUnauthorizedStatus(t, resp)
|
||||
require.False(t, success)
|
||||
|
||||
exists, err = th.App.FileExists(fpath)
|
||||
require.Nil(t, err)
|
||||
exists, appErr = th.App.FileExists(fpath)
|
||||
require.Nil(t, appErr)
|
||||
require.False(t, exists, "icon.svg should not for the user")
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ func TestUploadBrandImage(t *testing.T) {
|
||||
Client := th.Client
|
||||
|
||||
data, err := testutils.ReadTestFile("test.png")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, resp := Client.UploadBrandImage(data)
|
||||
CheckForbiddenStatus(t, resp)
|
||||
@@ -60,7 +60,7 @@ func TestDeleteBrandImage(t *testing.T) {
|
||||
defer th.TearDown()
|
||||
|
||||
data, err := testutils.ReadTestFile("test.png")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, resp := th.SystemAdminClient.UploadBrandImage(data)
|
||||
CheckCreatedStatus(t, resp)
|
||||
|
||||
@@ -546,7 +546,7 @@ func TestGetCommand(t *testing.T) {
|
||||
|
||||
t.Run("InvalidId", func(t *testing.T) {
|
||||
_, resp := client.GetCommandById(strings.Repeat("z", len(newCmd.Id)))
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
})
|
||||
})
|
||||
t.Run("UserWithNoPermissionForCustomCommands", func(t *testing.T) {
|
||||
|
||||
@@ -129,7 +129,7 @@ func TestCreateEmoji(t *testing.T) {
|
||||
}
|
||||
|
||||
newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, app.MaxEmojiOriginalWidth+1), "image.gif")
|
||||
require.Error(t, resp.Error, "should fail - emoji is too wide")
|
||||
require.NotNil(t, resp.Error, "should fail - emoji is too wide")
|
||||
|
||||
// try to create an emoji that's too tall
|
||||
emoji = &model.Emoji{
|
||||
@@ -138,7 +138,7 @@ func TestCreateEmoji(t *testing.T) {
|
||||
}
|
||||
|
||||
newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, app.MaxEmojiOriginalHeight+1, 10), "image.gif")
|
||||
require.Error(t, resp.Error, "should fail - emoji is too tall")
|
||||
require.NotNil(t, resp.Error, "should fail - emoji is too tall")
|
||||
|
||||
// try to create an emoji that's too large
|
||||
emoji = &model.Emoji{
|
||||
@@ -147,7 +147,7 @@ func TestCreateEmoji(t *testing.T) {
|
||||
}
|
||||
|
||||
_, resp = Client.CreateEmoji(emoji, utils.CreateTestAnimatedGif(t, 100, 100, 10000), "image.gif")
|
||||
require.Error(t, resp.Error, "should fail - emoji is too big")
|
||||
require.NotNil(t, resp.Error, "should fail - emoji is too big")
|
||||
|
||||
// try to create an emoji with data that isn't an image
|
||||
emoji = &model.Emoji{
|
||||
@@ -290,7 +290,7 @@ func TestDeleteEmoji(t *testing.T) {
|
||||
|
||||
_, resp = Client.GetEmoji(newEmoji.Id)
|
||||
require.NotNil(t, resp, "nil response")
|
||||
require.Error(t, resp.Error, "expected error fetching deleted emoji")
|
||||
require.NotNil(t, resp.Error, "expected error fetching deleted emoji")
|
||||
|
||||
//Admin can delete other users emoji
|
||||
newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif")
|
||||
@@ -302,7 +302,7 @@ func TestDeleteEmoji(t *testing.T) {
|
||||
|
||||
_, resp = th.SystemAdminClient.GetEmoji(newEmoji.Id)
|
||||
require.NotNil(t, resp, "nil response")
|
||||
require.Error(t, resp.Error, "expected error fetching deleted emoji")
|
||||
require.NotNil(t, resp.Error, "expected error fetching deleted emoji")
|
||||
|
||||
// Try to delete just deleted emoji
|
||||
_, resp = Client.DeleteEmoji(newEmoji.Id)
|
||||
|
||||
@@ -23,7 +23,7 @@ func TestListExports(t *testing.T) {
|
||||
|
||||
t.Run("no permissions", func(t *testing.T) {
|
||||
exports, resp := th.Client.ListExports()
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.context.permissions.app_error", resp.Error.Id)
|
||||
require.Nil(t, exports)
|
||||
})
|
||||
@@ -40,11 +40,11 @@ func TestListExports(t *testing.T) {
|
||||
th.TestForSystemAdminAndLocal(t, func(t *testing.T, c *model.Client4) {
|
||||
exportDir := filepath.Join(dataDir, *th.App.Config().ExportSettings.Directory)
|
||||
err := os.Mkdir(exportDir, 0700)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(exportDir)
|
||||
|
||||
f, err := os.Create(filepath.Join(exportDir, "export.zip"))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
f.Close()
|
||||
|
||||
exports, resp := c.ListExports()
|
||||
@@ -60,7 +60,7 @@ func TestListExports(t *testing.T) {
|
||||
|
||||
exportDir := filepath.Join(dataDir, value+"new")
|
||||
err := os.Mkdir(exportDir, 0700)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(exportDir)
|
||||
|
||||
exports, resp := c.ListExports()
|
||||
@@ -68,7 +68,7 @@ func TestListExports(t *testing.T) {
|
||||
require.Empty(t, exports)
|
||||
|
||||
f, err := os.Create(filepath.Join(exportDir, "export.zip"))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
f.Close()
|
||||
|
||||
exports, resp = c.ListExports()
|
||||
@@ -84,7 +84,7 @@ func TestDeleteExport(t *testing.T) {
|
||||
|
||||
t.Run("no permissions", func(t *testing.T) {
|
||||
ok, resp := th.Client.DeleteExport("export.zip")
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.context.permissions.app_error", resp.Error.Id)
|
||||
require.False(t, ok)
|
||||
})
|
||||
@@ -95,11 +95,11 @@ func TestDeleteExport(t *testing.T) {
|
||||
|
||||
th.TestForSystemAdminAndLocal(t, func(t *testing.T, c *model.Client4) {
|
||||
err := os.Mkdir(exportDir, 0700)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(exportDir)
|
||||
exportName := "export.zip"
|
||||
f, err := os.Create(filepath.Join(exportDir, exportName))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
f.Close()
|
||||
|
||||
exports, resp := c.ListExports()
|
||||
@@ -129,7 +129,7 @@ func TestDownloadExport(t *testing.T) {
|
||||
t.Run("no permissions", func(t *testing.T) {
|
||||
var buf bytes.Buffer
|
||||
n, resp := th.Client.DownloadExport("export.zip", &buf, 0)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.context.permissions.app_error", resp.Error.Id)
|
||||
require.Zero(t, n)
|
||||
})
|
||||
@@ -141,21 +141,21 @@ func TestDownloadExport(t *testing.T) {
|
||||
th.TestForSystemAdminAndLocal(t, func(t *testing.T, c *model.Client4) {
|
||||
var buf bytes.Buffer
|
||||
n, resp := c.DownloadExport("export.zip", &buf, 0)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.export.export_not_found.app_error", resp.Error.Id)
|
||||
require.Zero(t, n)
|
||||
}, "not found")
|
||||
|
||||
th.TestForSystemAdminAndLocal(t, func(t *testing.T, c *model.Client4) {
|
||||
err := os.Mkdir(exportDir, 0700)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(exportDir)
|
||||
|
||||
data := randomBytes(t, 1024*1024)
|
||||
var buf bytes.Buffer
|
||||
exportName := "export.zip"
|
||||
err = ioutil.WriteFile(filepath.Join(exportDir, exportName), data, 0600)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
n, resp := c.DownloadExport(exportName, &buf, 0)
|
||||
require.Nil(t, resp.Error)
|
||||
@@ -165,14 +165,14 @@ func TestDownloadExport(t *testing.T) {
|
||||
|
||||
th.TestForSystemAdminAndLocal(t, func(t *testing.T, c *model.Client4) {
|
||||
err := os.Mkdir(exportDir, 0700)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(exportDir)
|
||||
|
||||
data := randomBytes(t, 1024*1024)
|
||||
var buf bytes.Buffer
|
||||
exportName := "export.zip"
|
||||
err = ioutil.WriteFile(filepath.Join(exportDir, exportName), data, 0600)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
offset := 1024 * 512
|
||||
n, resp := c.DownloadExport(exportName, &buf, int64(offset))
|
||||
@@ -191,16 +191,16 @@ func BenchmarkDownloadExport(b *testing.B) {
|
||||
exportDir := filepath.Join(dataDir, *th.App.Config().ExportSettings.Directory)
|
||||
|
||||
err := os.Mkdir(exportDir, 0700)
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
defer os.RemoveAll(exportDir)
|
||||
|
||||
exportName := "export.zip"
|
||||
f, err := os.Create(filepath.Join(exportDir, exportName))
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
f.Close()
|
||||
|
||||
err = os.Truncate(filepath.Join(exportDir, exportName), 1024*1024*1024)
|
||||
require.Nil(b, err)
|
||||
require.NoError(b, err)
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
|
||||
@@ -61,7 +61,7 @@ func fileBytes(t *testing.T, path string) []byte {
|
||||
func testDoUploadFileRequest(t testing.TB, c *model.Client4, url string, blob []byte, contentType string,
|
||||
contentLength int64) (*model.FileUploadResponse, *model.Response) {
|
||||
req, err := http.NewRequest("POST", c.ApiUrl+c.GetFilesRoute()+url, bytes.NewReader(blob))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
if contentLength != 0 {
|
||||
req.ContentLength = contentLength
|
||||
@@ -72,7 +72,7 @@ func testDoUploadFileRequest(t testing.TB, c *model.Client4, url string, blob []
|
||||
}
|
||||
|
||||
resp, err := c.HttpClient.Do(req)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, resp)
|
||||
defer closeBody(resp)
|
||||
|
||||
@@ -156,13 +156,13 @@ func testUploadFilesMultipart(
|
||||
mw := multipart.NewWriter(mwBody)
|
||||
|
||||
err := mw.WriteField("channel_id", channelId)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
for i, blob := range blobs {
|
||||
ct := http.DetectContentType(blob)
|
||||
if len(clientIds) > i {
|
||||
err = mw.WriteField("client_ids", clientIds[i])
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
h := textproto.MIMEHeader{}
|
||||
@@ -172,10 +172,10 @@ func testUploadFilesMultipart(
|
||||
|
||||
// If we error here, writing to mw, the deferred handler
|
||||
part, err := mw.CreatePart(h)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = io.Copy(part, bytes.NewReader(blob))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
require.NoError(t, mw.Close())
|
||||
@@ -628,7 +628,7 @@ func TestUploadFiles(t *testing.T) {
|
||||
}
|
||||
|
||||
dbInfo, err := th.App.Srv().Store.FileInfo().Get(ri.Id)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, dbInfo.Id, ri.Id, "File id from response should match one stored in database")
|
||||
assert.Equal(t, dbInfo.CreatorId, tc.expectedCreatorId, "F ile should be assigned to user")
|
||||
assert.Equal(t, dbInfo.PostId, "", "File shouldn't have a post")
|
||||
@@ -666,13 +666,13 @@ func TestUploadFiles(t *testing.T) {
|
||||
require.Nil(t, resp.Error)
|
||||
|
||||
expected, err := ioutil.ReadFile(filepath.Join(testDir, name))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
if !bytes.Equal(data, expected) {
|
||||
tf, err := ioutil.TempFile("", fmt.Sprintf("test_%v_*_%s", i, name))
|
||||
defer tf.Close()
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = io.Copy(tf, bytes.NewReader(data))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
t.Errorf("Actual data mismatched %s, written to %q - expected %d bytes, got %d.", name, tf.Name(), len(expected), len(data))
|
||||
}
|
||||
}
|
||||
@@ -860,7 +860,7 @@ func TestGetFileLink(t *testing.T) {
|
||||
|
||||
// Hacky way to assign file to a post (usually would be done by CreatePost call)
|
||||
err = th.App.Srv().Store.FileInfo().AttachToPost(fileId, th.BasicPost.Id, th.BasicUser.Id)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.FileSettings.EnablePublicLink = false })
|
||||
_, resp = Client.GetFileLink(fileId)
|
||||
@@ -891,7 +891,7 @@ func TestGetFileLink(t *testing.T) {
|
||||
CheckNoError(t, resp)
|
||||
|
||||
fileInfo, err := th.App.Srv().Store.FileInfo().Get(fileId)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
th.cleanupTestFile(fileInfo)
|
||||
}
|
||||
|
||||
@@ -1005,10 +1005,10 @@ func TestGetPublicFile(t *testing.T) {
|
||||
|
||||
// Hacky way to assign file to a post (usually would be done by CreatePost call)
|
||||
err = th.App.Srv().Store.FileInfo().AttachToPost(fileId, th.BasicPost.Id, th.BasicUser.Id)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
info, err := th.App.Srv().Store.FileInfo().Get(fileId)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
link := th.App.GeneratePublicLink(Client.Url, info)
|
||||
|
||||
resp, err := http.Get(link)
|
||||
@@ -1038,12 +1038,12 @@ func TestGetPublicFile(t *testing.T) {
|
||||
require.Equal(t, http.StatusBadRequest, resp.StatusCode, "should've failed to get image with public link after salt changed")
|
||||
|
||||
fileInfo, err := th.App.Srv().Store.FileInfo().Get(fileId)
|
||||
require.Nil(t, err)
|
||||
require.Nil(t, th.cleanupTestFile(fileInfo))
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, th.cleanupTestFile(fileInfo))
|
||||
|
||||
th.cleanupTestFile(info)
|
||||
link = th.App.GeneratePublicLink(Client.Url, info)
|
||||
resp, err = http.Get(link)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, http.StatusNotFound, resp.StatusCode, "should've failed to get file after it is deleted")
|
||||
}
|
||||
|
||||
@@ -23,10 +23,10 @@ func TestListImports(t *testing.T) {
|
||||
|
||||
uploadNewImport := func(c *model.Client4, t *testing.T) string {
|
||||
file, err := os.Open(testsDir + "/import_test.zip")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
info, err := file.Stat()
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
us := &model.UploadSession{
|
||||
Filename: info.Name(),
|
||||
@@ -51,7 +51,7 @@ func TestListImports(t *testing.T) {
|
||||
|
||||
t.Run("no permissions", func(t *testing.T) {
|
||||
imports, resp := th.Client.ListImports()
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.context.permissions.app_error", resp.Error.Id)
|
||||
require.Nil(t, imports)
|
||||
})
|
||||
@@ -71,7 +71,7 @@ func TestListImports(t *testing.T) {
|
||||
|
||||
importDir := filepath.Join(dataDir, "import")
|
||||
f, err := os.Create(filepath.Join(importDir, "import.zip.tmp"))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
f.Close()
|
||||
|
||||
imports, resp := c.ListImports()
|
||||
@@ -81,7 +81,7 @@ func TestListImports(t *testing.T) {
|
||||
require.Contains(t, imports, id+"_import_test.zip")
|
||||
require.Contains(t, imports, id2+"_import_test.zip")
|
||||
|
||||
require.Nil(t, os.RemoveAll(importDir))
|
||||
require.NoError(t, os.RemoveAll(importDir))
|
||||
}, "expected imports")
|
||||
|
||||
th.TestForSystemAdminAndLocal(t, func(t *testing.T, c *model.Client4) {
|
||||
@@ -101,6 +101,6 @@ func TestListImports(t *testing.T) {
|
||||
require.Len(t, imports, 1)
|
||||
require.Equal(t, id+"_import_test.zip", imports[0])
|
||||
|
||||
require.Nil(t, os.RemoveAll(importDir))
|
||||
require.NoError(t, os.RemoveAll(importDir))
|
||||
}, "change import directory")
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ type testHandler struct {
|
||||
|
||||
func (th *testHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
bb, err := ioutil.ReadAll(r.Body)
|
||||
assert.Nil(th.t, err)
|
||||
assert.NoError(th.t, err)
|
||||
assert.NotEmpty(th.t, string(bb))
|
||||
poir := model.PostActionIntegrationRequestFromJson(bytes.NewReader(bb))
|
||||
assert.NotEmpty(th.t, poir.UserId)
|
||||
@@ -237,8 +237,7 @@ func TestSubmitDialog(t *testing.T) {
|
||||
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
var request model.SubmitDialogRequest
|
||||
err := json.NewDecoder(r.Body).Decode(&request)
|
||||
require.Nil(t, err)
|
||||
assert.NotNil(t, request)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, request.URL, "")
|
||||
assert.Equal(t, request.UserId, submit.UserId)
|
||||
|
||||
@@ -53,7 +53,7 @@ func TestGetJob(t *testing.T) {
|
||||
Status: model.JOB_STATUS_PENDING,
|
||||
}
|
||||
_, err := th.App.Srv().Store.Job().Save(job)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
defer th.App.Srv().Store.Job().Delete(job.Id)
|
||||
|
||||
@@ -100,7 +100,7 @@ func TestGetJobs(t *testing.T) {
|
||||
|
||||
for _, job := range jobs {
|
||||
_, err := th.App.Srv().Store.Job().Save(job)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(job.Id)
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ func TestGetJobsByType(t *testing.T) {
|
||||
|
||||
for _, job := range jobs {
|
||||
_, err := th.App.Srv().Store.Job().Save(job)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(job.Id)
|
||||
}
|
||||
|
||||
@@ -213,12 +213,12 @@ func TestDownloadJob(t *testing.T) {
|
||||
// Here we have a job that exist in our database but the results do not exist therefore when we try to download the results
|
||||
// as a system admin, we should get a not found status.
|
||||
_, err := th.App.Srv().Store.Job().Save(job)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(job.Id)
|
||||
|
||||
filePath := "./data/export/" + job.Id + "/testdat.txt"
|
||||
mkdirAllErr := os.MkdirAll(filepath.Dir(filePath), 0770)
|
||||
require.Nil(t, mkdirAllErr)
|
||||
require.NoError(t, mkdirAllErr)
|
||||
os.Create(filePath)
|
||||
|
||||
// Normal user cannot download the results of these job (not the right permission)
|
||||
@@ -235,7 +235,7 @@ func TestDownloadJob(t *testing.T) {
|
||||
job.Data["is_downloadable"] = "true"
|
||||
updateStatus, err := th.App.Srv().Store.Job().UpdateOptimistically(job, model.JOB_STATUS_SUCCESS)
|
||||
require.True(t, updateStatus)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, resp = th.SystemAdminClient.DownloadJob(job.Id)
|
||||
CheckNotFoundStatus(t, resp)
|
||||
@@ -244,7 +244,7 @@ func TestDownloadJob(t *testing.T) {
|
||||
// This time we should successfully retrieve the results without any error
|
||||
filePath = "./data/export/" + job.Id + ".zip"
|
||||
mkdirAllErr = os.MkdirAll(filepath.Dir(filePath), 0770)
|
||||
require.Nil(t, mkdirAllErr)
|
||||
require.NoError(t, mkdirAllErr)
|
||||
os.Create(filePath)
|
||||
|
||||
_, resp = th.SystemAdminClient.DownloadJob(job.Id)
|
||||
@@ -261,7 +261,7 @@ func TestDownloadJob(t *testing.T) {
|
||||
Status: model.JOB_STATUS_SUCCESS,
|
||||
}
|
||||
_, err = th.App.Srv().Store.Job().Save(job)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(job.Id)
|
||||
|
||||
// System admin shouldn't be able to download since the job type is not message export
|
||||
@@ -293,7 +293,7 @@ func TestCancelJob(t *testing.T) {
|
||||
|
||||
for _, job := range jobs {
|
||||
_, err := th.App.Srv().Store.Job().Save(job)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(job.Id)
|
||||
}
|
||||
|
||||
|
||||
@@ -28,12 +28,12 @@ func TestGetOldClientLicense(t *testing.T) {
|
||||
CheckNoError(t, resp)
|
||||
|
||||
_, err := Client.DoApiGet("/license/client", "")
|
||||
require.Error(t, err, "get /license/client did not return an error")
|
||||
require.NotNil(t, err, "get /license/client did not return an error")
|
||||
require.Equal(t, err.StatusCode, http.StatusNotImplemented,
|
||||
"expected 501 Not Implemented")
|
||||
|
||||
_, err = Client.DoApiGet("/license/client?format=junk", "")
|
||||
require.Error(t, err, "get /license/client?format=junk did not return an error")
|
||||
require.NotNil(t, err, "get /license/client?format=junk did not return an error")
|
||||
require.Equal(t, err.StatusCode, http.StatusBadRequest,
|
||||
"expected 400 Bad Request")
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ func TestCreateOAuthApp(t *testing.T) {
|
||||
CheckBadRequestStatus(t, resp)
|
||||
|
||||
r, err := Client.DoApiPost("/oauth/apps", "garbage")
|
||||
require.Error(t, err, "expected error from garbage post")
|
||||
require.NotNil(t, err, "expected error from garbage post")
|
||||
assert.Equal(t, http.StatusBadRequest, r.StatusCode)
|
||||
|
||||
Client.Logout()
|
||||
|
||||
@@ -34,7 +34,7 @@ func TestPlugin(t *testing.T) {
|
||||
|
||||
th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
|
||||
statesJson, err := json.Marshal(th.App.Config().PluginSettings.PluginStates)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
states := map[string]*model.PluginState{}
|
||||
json.Unmarshal(statesJson, &states)
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
@@ -68,8 +68,8 @@ func TestPlugin(t *testing.T) {
|
||||
assert.Equal(t, "testplugin", manifest.Id)
|
||||
|
||||
// Stored in File Store: Install Plugin from URL case
|
||||
pluginStored, err := th.App.FileExists("./plugins/" + manifest.Id + ".tar.gz")
|
||||
assert.Nil(t, err)
|
||||
pluginStored, appErr := th.App.FileExists("./plugins/" + manifest.Id + ".tar.gz")
|
||||
assert.Nil(t, appErr)
|
||||
assert.True(t, pluginStored)
|
||||
|
||||
ok, resp := client.RemovePlugin(manifest.Id)
|
||||
@@ -127,8 +127,8 @@ func TestPlugin(t *testing.T) {
|
||||
assert.Equal(t, "testplugin", manifest.Id)
|
||||
|
||||
// Stored in File Store: Upload Plugin case
|
||||
pluginStored, err = th.App.FileExists("./plugins/" + manifest.Id + ".tar.gz")
|
||||
assert.Nil(t, err)
|
||||
pluginStored, appErr = th.App.FileExists("./plugins/" + manifest.Id + ".tar.gz")
|
||||
assert.Nil(t, appErr)
|
||||
assert.True(t, pluginStored)
|
||||
|
||||
// Upload error cases
|
||||
@@ -296,8 +296,8 @@ func TestNotifyClusterPluginEvent(t *testing.T) {
|
||||
|
||||
// Stored in File Store: Upload Plugin case
|
||||
expectedPath := filepath.Join("./plugins", manifest.Id) + ".tar.gz"
|
||||
pluginStored, err := th.App.FileExists(expectedPath)
|
||||
require.Nil(t, err)
|
||||
pluginStored, appErr := th.App.FileExists(expectedPath)
|
||||
require.Nil(t, appErr)
|
||||
require.True(t, pluginStored)
|
||||
|
||||
messages := testCluster.GetMessages()
|
||||
@@ -320,8 +320,8 @@ func TestNotifyClusterPluginEvent(t *testing.T) {
|
||||
require.Equal(t, "testplugin", manifest.Id)
|
||||
|
||||
// Successful remove
|
||||
webSocketClient, err := th.CreateWebSocketSystemAdminClient()
|
||||
require.Nil(t, err)
|
||||
webSocketClient, appErr := th.CreateWebSocketSystemAdminClient()
|
||||
require.Nil(t, appErr)
|
||||
webSocketClient.Listen()
|
||||
defer webSocketClient.Close()
|
||||
done := make(chan bool)
|
||||
@@ -359,8 +359,8 @@ func TestNotifyClusterPluginEvent(t *testing.T) {
|
||||
actualMessages = findClusterMessages(model.CLUSTER_EVENT_REMOVE_PLUGIN, messages)
|
||||
require.Equal(t, []*model.ClusterMessage{expectedRemoveMessage}, actualMessages)
|
||||
|
||||
pluginStored, err = th.App.FileExists(expectedPath)
|
||||
require.Nil(t, err)
|
||||
pluginStored, appErr = th.App.FileExists(expectedPath)
|
||||
require.Nil(t, appErr)
|
||||
require.False(t, pluginStored)
|
||||
}
|
||||
|
||||
@@ -1255,9 +1255,9 @@ func TestInstallMarketplacePlugin(t *testing.T) {
|
||||
path, _ := fileutils.FindDir("tests")
|
||||
signatureFilename := "testplugin2.tar.gz.sig"
|
||||
signatureFileReader, err := os.Open(filepath.Join(path, signatureFilename))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
sigFile, err := ioutil.ReadAll(signatureFileReader)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
pluginSignature := base64.StdEncoding.EncodeToString(sigFile)
|
||||
|
||||
tarData, err := ioutil.ReadFile(filepath.Join(path, "testplugin2.tar.gz"))
|
||||
@@ -1420,15 +1420,15 @@ func TestInstallMarketplacePlugin(t *testing.T) {
|
||||
require.Equal(t, "1.2.3", manifest.Version)
|
||||
|
||||
filePath := filepath.Join("plugins", "testplugin2.tar.gz.sig")
|
||||
savedSigFile, err := th.App.ReadFile(filePath)
|
||||
require.Nil(t, err)
|
||||
savedSigFile, appErr := th.App.ReadFile(filePath)
|
||||
require.Nil(t, appErr)
|
||||
require.EqualValues(t, sigFile, savedSigFile)
|
||||
|
||||
ok, resp := client.RemovePlugin(manifest.Id)
|
||||
CheckNoError(t, resp)
|
||||
assert.True(t, ok)
|
||||
exists, err := th.App.FileExists(filePath)
|
||||
require.Nil(t, err)
|
||||
exists, appErr := th.App.FileExists(filePath)
|
||||
require.Nil(t, appErr)
|
||||
require.False(t, exists)
|
||||
|
||||
appErr = th.App.DeletePublicKey("pub_key")
|
||||
@@ -1564,9 +1564,9 @@ func TestInstallMarketplacePlugin(t *testing.T) {
|
||||
|
||||
th2.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
|
||||
pluginSignatureFile, err := os.Open(filepath.Join(path, "testplugin.tar.gz.asc"))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
pluginSignatureData, err := ioutil.ReadAll(pluginSignatureFile)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
key, err := os.Open(filepath.Join(path, "development-private-key.asc"))
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -199,7 +199,7 @@ func TestCreatePost(t *testing.T) {
|
||||
CheckForbiddenStatus(t, resp)
|
||||
|
||||
r, err := Client.DoApiPost("/posts", "garbage")
|
||||
require.Error(t, err)
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, http.StatusBadRequest, r.StatusCode)
|
||||
|
||||
Client.Logout()
|
||||
@@ -230,7 +230,7 @@ func TestCreatePostEphemeral(t *testing.T) {
|
||||
require.Equal(t, 0, int(rpost.EditAt), "newly created ephemeral post shouldn't have EditAt set")
|
||||
|
||||
r, err := Client.DoApiPost("/posts/ephemeral", "garbage")
|
||||
require.Error(t, err)
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, http.StatusBadRequest, r.StatusCode)
|
||||
|
||||
Client.Logout()
|
||||
@@ -664,20 +664,20 @@ func TestUpdatePost(t *testing.T) {
|
||||
|
||||
fileIds := make([]string, 3)
|
||||
data, err := testutils.ReadTestFile("test.png")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
for i := 0; i < len(fileIds); i++ {
|
||||
fileResp, resp := Client.UploadFile(data, channel.Id, "test.png")
|
||||
CheckNoError(t, resp)
|
||||
fileIds[i] = fileResp.FileInfos[0].Id
|
||||
}
|
||||
|
||||
rpost, err := th.App.CreatePost(&model.Post{
|
||||
rpost, appErr := th.App.CreatePost(&model.Post{
|
||||
UserId: th.BasicUser.Id,
|
||||
ChannelId: channel.Id,
|
||||
Message: "zz" + model.NewId() + "a",
|
||||
FileIds: fileIds,
|
||||
}, channel, false, true)
|
||||
require.Nil(t, err)
|
||||
require.Nil(t, appErr)
|
||||
|
||||
assert.Equal(t, rpost.Message, rpost.Message, "full name didn't match")
|
||||
assert.EqualValues(t, 0, rpost.EditAt, "Newly created post shouldn't have EditAt set")
|
||||
@@ -744,12 +744,12 @@ func TestUpdatePost(t *testing.T) {
|
||||
CheckBadRequestStatus(t, resp)
|
||||
})
|
||||
|
||||
rpost3, err := th.App.CreatePost(&model.Post{
|
||||
rpost3, appErr := th.App.CreatePost(&model.Post{
|
||||
ChannelId: channel.Id,
|
||||
Message: "zz" + model.NewId() + "a",
|
||||
UserId: th.BasicUser.Id,
|
||||
}, channel, false, true)
|
||||
require.Nil(t, err)
|
||||
require.Nil(t, appErr)
|
||||
|
||||
t.Run("new message, add files", func(t *testing.T) {
|
||||
up3 := &model.Post{
|
||||
@@ -847,7 +847,7 @@ func TestPatchPost(t *testing.T) {
|
||||
|
||||
fileIds := make([]string, 3)
|
||||
data, err := testutils.ReadTestFile("test.png")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
for i := 0; i < len(fileIds); i++ {
|
||||
fileResp, resp := Client.UploadFile(data, channel.Id, "test.png")
|
||||
CheckNoError(t, resp)
|
||||
@@ -1721,7 +1721,7 @@ func TestGetPostsForChannelAroundLastUnread(t *testing.T) {
|
||||
|
||||
// Setting limit_after to zero should fail with a 400 BadRequest.
|
||||
posts, resp := Client.GetPostsAroundLastUnread(userId, channelId, 20, 0, false)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.context.invalid_url_param.app_error", resp.Error.Id)
|
||||
require.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||
|
||||
@@ -1733,10 +1733,10 @@ func TestGetPostsForChannelAroundLastUnread(t *testing.T) {
|
||||
// Set channel member's last viewed to 0.
|
||||
// All returned posts are latest posts as if all previous posts were already read by the user.
|
||||
channelMember, err := th.App.Srv().Store.Channel().GetMember(channelId, userId)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
channelMember.LastViewedAt = 0
|
||||
_, err = th.App.Srv().Store.Channel().UpdateMember(channelMember)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
th.App.Srv().Store.Post().InvalidateLastPostTimeCache(channelId)
|
||||
|
||||
posts, resp = Client.GetPostsAroundLastUnread(userId, channelId, 20, 20, false)
|
||||
@@ -1754,10 +1754,10 @@ func TestGetPostsForChannelAroundLastUnread(t *testing.T) {
|
||||
|
||||
// Set channel member's last viewed before post1.
|
||||
channelMember, err = th.App.Srv().Store.Channel().GetMember(channelId, userId)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
channelMember.LastViewedAt = post1.CreateAt - 1
|
||||
_, err = th.App.Srv().Store.Channel().UpdateMember(channelMember)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
th.App.Srv().Store.Post().InvalidateLastPostTimeCache(channelId)
|
||||
|
||||
posts, resp = Client.GetPostsAroundLastUnread(userId, channelId, 3, 3, false)
|
||||
@@ -1778,10 +1778,10 @@ func TestGetPostsForChannelAroundLastUnread(t *testing.T) {
|
||||
|
||||
// Set channel member's last viewed before post6.
|
||||
channelMember, err = th.App.Srv().Store.Channel().GetMember(channelId, userId)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
channelMember.LastViewedAt = post6.CreateAt - 1
|
||||
_, err = th.App.Srv().Store.Channel().UpdateMember(channelMember)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
th.App.Srv().Store.Post().InvalidateLastPostTimeCache(channelId)
|
||||
|
||||
posts, resp = Client.GetPostsAroundLastUnread(userId, channelId, 3, 3, false)
|
||||
@@ -1805,10 +1805,10 @@ func TestGetPostsForChannelAroundLastUnread(t *testing.T) {
|
||||
|
||||
// Set channel member's last viewed before post10.
|
||||
channelMember, err = th.App.Srv().Store.Channel().GetMember(channelId, userId)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
channelMember.LastViewedAt = post10.CreateAt - 1
|
||||
_, err = th.App.Srv().Store.Channel().UpdateMember(channelMember)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
th.App.Srv().Store.Post().InvalidateLastPostTimeCache(channelId)
|
||||
|
||||
posts, resp = Client.GetPostsAroundLastUnread(userId, channelId, 3, 3, false)
|
||||
@@ -1830,10 +1830,10 @@ func TestGetPostsForChannelAroundLastUnread(t *testing.T) {
|
||||
|
||||
// Set channel member's last viewed equal to post10.
|
||||
channelMember, err = th.App.Srv().Store.Channel().GetMember(channelId, userId)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
channelMember.LastViewedAt = post10.CreateAt
|
||||
_, err = th.App.Srv().Store.Channel().UpdateMember(channelMember)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
th.App.Srv().Store.Post().InvalidateLastPostTimeCache(channelId)
|
||||
|
||||
posts, resp = Client.GetPostsAroundLastUnread(userId, channelId, 3, 3, false)
|
||||
@@ -1870,10 +1870,10 @@ func TestGetPostsForChannelAroundLastUnread(t *testing.T) {
|
||||
postIdNames[post13.Id] = "post13"
|
||||
|
||||
channelMember, err = th.App.Srv().Store.Channel().GetMember(channelId, userId)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
channelMember.LastViewedAt = post12.CreateAt - 1
|
||||
_, err = th.App.Srv().Store.Channel().UpdateMember(channelMember)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
th.App.Srv().Store.Post().InvalidateLastPostTimeCache(channelId)
|
||||
|
||||
posts, resp = Client.GetPostsAroundLastUnread(userId, channelId, 1, 2, false)
|
||||
|
||||
@@ -610,7 +610,7 @@ func TestDeletePreferencesWebsocket(t *testing.T) {
|
||||
}
|
||||
|
||||
received, err := model.PreferencesFromJson(strings.NewReader(event.GetData()["preferences"].(string)))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
for i, preference := range *preferences {
|
||||
require.Equal(t, preference.UserId, received[i].UserId)
|
||||
|
||||
@@ -246,7 +246,7 @@ func TestGetReactions(t *testing.T) {
|
||||
|
||||
for _, userReaction := range userReactions {
|
||||
reaction, err := th.App.Srv().Store.Reaction().Save(userReaction)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
reactions = append(reactions, reaction)
|
||||
}
|
||||
|
||||
@@ -597,7 +597,7 @@ func TestGetBulkReactions(t *testing.T) {
|
||||
for _, userReaction := range userReactions {
|
||||
reactions := expectedPostIdsReactionsMap[userReaction.PostId]
|
||||
reaction, err := th.App.Srv().Store.Reaction().Save(userReaction)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
reactions = append(reactions, reaction)
|
||||
expectedPostIdsReactionsMap[userReaction.PostId] = reactions
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ func TestGetRole(t *testing.T) {
|
||||
}
|
||||
|
||||
role, err := th.App.Srv().Store.Role().Save(role)
|
||||
assert.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(role.Id)
|
||||
|
||||
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
|
||||
@@ -63,7 +63,7 @@ func TestGetRoleByName(t *testing.T) {
|
||||
}
|
||||
|
||||
role, err := th.App.Srv().Store.Role().Save(role)
|
||||
assert.Nil(t, err)
|
||||
assert.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(role.Id)
|
||||
|
||||
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
|
||||
@@ -114,15 +114,15 @@ func TestGetRolesByNames(t *testing.T) {
|
||||
}
|
||||
|
||||
role1, err := th.App.Srv().Store.Role().Save(role1)
|
||||
assert.Nil(t, err)
|
||||
assert.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(role1.Id)
|
||||
|
||||
role2, err = th.App.Srv().Store.Role().Save(role2)
|
||||
assert.Nil(t, err)
|
||||
assert.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(role2.Id)
|
||||
|
||||
role3, err = th.App.Srv().Store.Role().Save(role3)
|
||||
assert.Nil(t, err)
|
||||
assert.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(role3.Id)
|
||||
|
||||
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
|
||||
@@ -170,7 +170,7 @@ func TestPatchRole(t *testing.T) {
|
||||
}
|
||||
|
||||
role, err := th.App.Srv().Store.Role().Save(role)
|
||||
assert.Nil(t, err)
|
||||
assert.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(role.Id)
|
||||
|
||||
patch := &model.RolePatch{
|
||||
@@ -181,7 +181,7 @@ func TestPatchRole(t *testing.T) {
|
||||
|
||||
// Cannot edit a system admin
|
||||
adminRole, err := th.App.Srv().Store.Role().GetByName("system_admin")
|
||||
assert.Nil(t, err)
|
||||
assert.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(adminRole.Id)
|
||||
|
||||
_, resp := client.PatchRole(adminRole.Id, patch)
|
||||
@@ -189,7 +189,7 @@ func TestPatchRole(t *testing.T) {
|
||||
|
||||
// Cannot give other roles read / write to system roles or manage roles because only system admin can do these actions
|
||||
systemManager, err := th.App.Srv().Store.Role().GetByName("system_manager")
|
||||
assert.Nil(t, err)
|
||||
assert.NoError(t, err)
|
||||
defer th.App.Srv().Store.Job().Delete(systemManager.Id)
|
||||
|
||||
patchWriteSystemRoles := &model.RolePatch{
|
||||
@@ -272,7 +272,7 @@ func TestPatchRole(t *testing.T) {
|
||||
th.App.Srv().SetLicense(license)
|
||||
|
||||
guestRole, err := th.App.Srv().Store.Role().GetByName("system_guest")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
received, resp = client.PatchRole(guestRole.Id, patch)
|
||||
CheckNotImplementedStatus(t, resp)
|
||||
})
|
||||
@@ -282,7 +282,7 @@ func TestPatchRole(t *testing.T) {
|
||||
license.Features.GuestAccountsPermissions = model.NewBool(true)
|
||||
th.App.Srv().SetLicense(license)
|
||||
guestRole, err := th.App.Srv().Store.Role().GetByName("system_guest")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
_, resp = client.PatchRole(guestRole.Id, patch)
|
||||
CheckNoError(t, resp)
|
||||
})
|
||||
|
||||
@@ -309,7 +309,7 @@ func TestGetTeamsForScheme(t *testing.T) {
|
||||
}
|
||||
|
||||
team1, err := th.App.Srv().Store.Team().Save(team1)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
l2, r2 := th.SystemAdminClient.GetTeamsForScheme(scheme1.Id, 0, 100)
|
||||
CheckNoError(t, r2)
|
||||
@@ -317,7 +317,7 @@ func TestGetTeamsForScheme(t *testing.T) {
|
||||
|
||||
team1.SchemeId = &scheme1.Id
|
||||
team1, err = th.App.Srv().Store.Team().Update(team1)
|
||||
assert.Nil(t, err)
|
||||
assert.NoError(t, err)
|
||||
|
||||
l3, r3 := th.SystemAdminClient.GetTeamsForScheme(scheme1.Id, 0, 100)
|
||||
CheckNoError(t, r3)
|
||||
@@ -331,7 +331,7 @@ func TestGetTeamsForScheme(t *testing.T) {
|
||||
SchemeId: &scheme1.Id,
|
||||
}
|
||||
team2, err = th.App.Srv().Store.Team().Save(team2)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
l4, r4 := th.SystemAdminClient.GetTeamsForScheme(scheme1.Id, 0, 100)
|
||||
CheckNoError(t, r4)
|
||||
@@ -402,7 +402,7 @@ func TestGetChannelsForScheme(t *testing.T) {
|
||||
}
|
||||
|
||||
channel1, errCh := th.App.Srv().Store.Channel().Save(channel1, 1000000)
|
||||
assert.Nil(t, errCh)
|
||||
assert.NoError(t, errCh)
|
||||
|
||||
l2, r2 := th.SystemAdminClient.GetChannelsForScheme(scheme1.Id, 0, 100)
|
||||
CheckNoError(t, r2)
|
||||
@@ -410,7 +410,7 @@ func TestGetChannelsForScheme(t *testing.T) {
|
||||
|
||||
channel1.SchemeId = &scheme1.Id
|
||||
channel1, err := th.App.Srv().Store.Channel().Update(channel1)
|
||||
assert.Nil(t, err)
|
||||
assert.NoError(t, err)
|
||||
|
||||
l3, r3 := th.SystemAdminClient.GetChannelsForScheme(scheme1.Id, 0, 100)
|
||||
CheckNoError(t, r3)
|
||||
@@ -425,7 +425,7 @@ func TestGetChannelsForScheme(t *testing.T) {
|
||||
SchemeId: &scheme1.Id,
|
||||
}
|
||||
channel2, nErr := th.App.Srv().Store.Channel().Save(channel2, 1000000)
|
||||
assert.Nil(t, nErr)
|
||||
assert.NoError(t, nErr)
|
||||
|
||||
l4, r4 := th.SystemAdminClient.GetChannelsForScheme(scheme1.Id, 0, 100)
|
||||
CheckNoError(t, r4)
|
||||
@@ -627,7 +627,7 @@ func TestDeleteScheme(t *testing.T) {
|
||||
Type: model.TEAM_OPEN,
|
||||
SchemeId: &s1.Id,
|
||||
})
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Delete the Scheme.
|
||||
_, r3 := th.SystemAdminClient.DeleteScheme(s1.Id)
|
||||
@@ -696,7 +696,7 @@ func TestDeleteScheme(t *testing.T) {
|
||||
Type: model.CHANNEL_OPEN,
|
||||
SchemeId: &s1.Id,
|
||||
}, -1)
|
||||
assert.Nil(t, err)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Delete the Scheme.
|
||||
_, r3 := th.SystemAdminClient.DeleteScheme(s1.Id)
|
||||
|
||||
@@ -73,7 +73,7 @@ func TestGetPing(t *testing.T) {
|
||||
require.Nil(t, appErr)
|
||||
require.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
respBytes, err := ioutil.ReadAll(resp.Body)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
respString := string(respBytes)
|
||||
require.NotContains(t, respString, "TestFeatureFlag")
|
||||
|
||||
@@ -86,7 +86,7 @@ func TestGetPing(t *testing.T) {
|
||||
require.Nil(t, appErr)
|
||||
require.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
respBytes, err = ioutil.ReadAll(resp.Body)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
respString = string(respBytes)
|
||||
require.Contains(t, respString, "testvalue")
|
||||
}, "ping feature flag test")
|
||||
|
||||
@@ -1859,7 +1859,7 @@ func TestAddTeamMember(t *testing.T) {
|
||||
app.TokenTypeTeamInvitation,
|
||||
model.MapToJson(map[string]string{"teamId": team.Id}),
|
||||
)
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
|
||||
tm, resp = Client.AddTeamMemberFromInvite(token.Token, "")
|
||||
CheckNoError(t, resp)
|
||||
@@ -1871,7 +1871,7 @@ func TestAddTeamMember(t *testing.T) {
|
||||
require.Equal(t, tm.TeamId, team.Id, "team ids should have matched")
|
||||
|
||||
_, nErr := th.App.Srv().Store.Token().GetByToken(token.Token)
|
||||
require.NotNil(t, nErr, "The token must be deleted after be used")
|
||||
require.Error(t, nErr, "The token must be deleted after be used")
|
||||
|
||||
tm, resp = Client.AddTeamMemberFromInvite("junk", "")
|
||||
CheckBadRequestStatus(t, resp)
|
||||
@@ -1881,7 +1881,7 @@ func TestAddTeamMember(t *testing.T) {
|
||||
// expired token of more than 50 hours
|
||||
token = model.NewToken(app.TokenTypeTeamInvitation, "")
|
||||
token.CreateAt = model.GetMillis() - 1000*60*60*50
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
|
||||
_, resp = Client.AddTeamMemberFromInvite(token.Token, "")
|
||||
CheckBadRequestStatus(t, resp)
|
||||
@@ -1893,7 +1893,7 @@ func TestAddTeamMember(t *testing.T) {
|
||||
app.TokenTypeTeamInvitation,
|
||||
model.MapToJson(map[string]string{"teamId": testId}),
|
||||
)
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
|
||||
_, resp = Client.AddTeamMemberFromInvite(token.Token, "")
|
||||
CheckNotFoundStatus(t, resp)
|
||||
@@ -1935,7 +1935,7 @@ func TestAddTeamMember(t *testing.T) {
|
||||
app.TokenTypeTeamInvitation,
|
||||
model.MapToJson(map[string]string{"teamId": team.Id}),
|
||||
)
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
tm, resp = Client.AddTeamMemberFromInvite(token.Token, "")
|
||||
require.Equal(t, "app.team.invite_token.group_constrained.error", resp.Error.Id)
|
||||
|
||||
@@ -2681,7 +2681,7 @@ func TestImportTeam(t *testing.T) {
|
||||
CheckNoError(t, resp)
|
||||
|
||||
fileData, err := base64.StdEncoding.DecodeString(fileResp["results"])
|
||||
require.Nil(t, err, "failed to decode base64 results data")
|
||||
require.NoError(t, err, "failed to decode base64 results data")
|
||||
|
||||
fileReturned := fmt.Sprintf("%s", fileData)
|
||||
require.Truef(t, strings.Contains(fileReturned, "darth.vader@stardeath.com"), "failed to report the user was imported, fileReturned: %s", fileReturned)
|
||||
@@ -3039,7 +3039,7 @@ func TestSetTeamIcon(t *testing.T) {
|
||||
team := th.BasicTeam
|
||||
|
||||
data, err := testutils.ReadTestFile("test.png")
|
||||
require.Nil(t, err, err)
|
||||
require.NoError(t, err, err)
|
||||
|
||||
th.LoginTeamAdmin()
|
||||
|
||||
@@ -3075,19 +3075,19 @@ func TestSetTeamIcon(t *testing.T) {
|
||||
require.Fail(t, "Should have failed either forbidden or unauthorized")
|
||||
}
|
||||
|
||||
teamBefore, err := th.App.GetTeam(team.Id)
|
||||
require.Nil(t, err)
|
||||
teamBefore, appErr := th.App.GetTeam(team.Id)
|
||||
require.Nil(t, appErr)
|
||||
|
||||
_, resp = th.SystemAdminClient.SetTeamIcon(team.Id, data)
|
||||
CheckNoError(t, resp)
|
||||
|
||||
teamAfter, err := th.App.GetTeam(team.Id)
|
||||
require.Nil(t, err)
|
||||
teamAfter, appErr := th.App.GetTeam(team.Id)
|
||||
require.Nil(t, appErr)
|
||||
assert.True(t, teamBefore.LastTeamIconUpdate < teamAfter.LastTeamIconUpdate, "LastTeamIconUpdate should have been updated for team")
|
||||
|
||||
info := &model.FileInfo{Path: "teams/" + team.Id + "/teamIcon.png"}
|
||||
err = th.cleanupTestFile(info)
|
||||
require.Nil(t, err, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestGetTeamIcon(t *testing.T) {
|
||||
|
||||
@@ -32,7 +32,7 @@ func TestCreateUpload(t *testing.T) {
|
||||
defer th.App.UpdateConfig(func(cfg *model.Config) { *cfg.FileSettings.EnableFileAttachments = true })
|
||||
u, resp := th.Client.CreateUpload(us)
|
||||
require.Nil(t, u)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.file.attachments.disabled.app_error", resp.Error.Id)
|
||||
require.Equal(t, http.StatusNotImplemented, resp.StatusCode)
|
||||
})
|
||||
@@ -41,7 +41,7 @@ func TestCreateUpload(t *testing.T) {
|
||||
us.ChannelId = th.BasicPrivateChannel2.Id
|
||||
u, resp := th.Client.CreateUpload(us)
|
||||
require.Nil(t, u)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.context.permissions.app_error", resp.Error.Id)
|
||||
require.Equal(t, http.StatusForbidden, resp.StatusCode)
|
||||
})
|
||||
@@ -58,11 +58,11 @@ func TestCreateUpload(t *testing.T) {
|
||||
testsDir, _ := fileutils.FindDir("tests")
|
||||
|
||||
importFile, err := os.Open(testsDir + "/import_test.zip")
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
defer importFile.Close()
|
||||
|
||||
info, err := importFile.Stat()
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
t.Run("permissions error", func(t *testing.T) {
|
||||
us := &model.UploadSession{
|
||||
@@ -72,7 +72,7 @@ func TestCreateUpload(t *testing.T) {
|
||||
}
|
||||
u, resp := th.Client.CreateUpload(us)
|
||||
require.Nil(t, u)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.context.permissions.app_error", resp.Error.Id)
|
||||
require.Equal(t, http.StatusForbidden, resp.StatusCode)
|
||||
})
|
||||
@@ -111,7 +111,7 @@ func TestGetUpload(t *testing.T) {
|
||||
t.Run("upload not found", func(t *testing.T) {
|
||||
u, resp := th.Client.GetUpload(model.NewId())
|
||||
require.Nil(t, u)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "app.upload.get.app_error", resp.Error.Id)
|
||||
require.Equal(t, http.StatusNotFound, resp.StatusCode)
|
||||
})
|
||||
@@ -119,7 +119,7 @@ func TestGetUpload(t *testing.T) {
|
||||
t.Run("no permissions", func(t *testing.T) {
|
||||
u, resp := th.Client.GetUpload(us.Id)
|
||||
require.Nil(t, u)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.upload.get_upload.forbidden.app_error", resp.Error.Id)
|
||||
})
|
||||
|
||||
@@ -142,7 +142,7 @@ func TestGetUploadsForUser(t *testing.T) {
|
||||
|
||||
t.Run("no permissions", func(t *testing.T) {
|
||||
uss, resp := th.Client.GetUploadsForUser(th.BasicUser2.Id)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.user.get_uploads_for_user.forbidden.app_error", resp.Error.Id)
|
||||
require.Nil(t, uss)
|
||||
})
|
||||
@@ -211,14 +211,14 @@ func TestUploadData(t *testing.T) {
|
||||
defer th.App.UpdateConfig(func(cfg *model.Config) { *cfg.FileSettings.EnableFileAttachments = true })
|
||||
info, resp := th.Client.UploadData(model.NewId(), bytes.NewReader(data))
|
||||
require.Nil(t, info)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.file.attachments.disabled.app_error", resp.Error.Id)
|
||||
})
|
||||
|
||||
t.Run("upload not found", func(t *testing.T) {
|
||||
info, resp := th.Client.UploadData(model.NewId(), bytes.NewReader(data))
|
||||
require.Nil(t, info)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "app.upload.get.app_error", resp.Error.Id)
|
||||
require.Equal(t, http.StatusNotFound, resp.StatusCode)
|
||||
})
|
||||
@@ -226,7 +226,7 @@ func TestUploadData(t *testing.T) {
|
||||
t.Run("no permissions", func(t *testing.T) {
|
||||
info, resp := th.Client.UploadData(us.Id, bytes.NewReader(data))
|
||||
require.Nil(t, info)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.context.permissions.app_error", resp.Error.Id)
|
||||
})
|
||||
|
||||
@@ -238,7 +238,7 @@ func TestUploadData(t *testing.T) {
|
||||
|
||||
info, resp := th.Client.UploadData(u.Id, bytes.NewReader(append(data, 0x00)))
|
||||
require.Nil(t, info)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.upload.upload_data.invalid_content_length", resp.Error.Id)
|
||||
})
|
||||
|
||||
@@ -311,19 +311,19 @@ func TestUploadDataMultipart(t *testing.T) {
|
||||
mpData := &bytes.Buffer{}
|
||||
mpWriter := multipart.NewWriter(mpData)
|
||||
part, err := mpWriter.CreateFormFile("data", us.Filename)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
n, err := part.Write(data)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, len(data), n)
|
||||
err = mpWriter.Close()
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
return mpData, mpWriter.FormDataContentType()
|
||||
}
|
||||
|
||||
t.Run("bad content-type", func(t *testing.T) {
|
||||
info, resp := th.Client.DoUploadFile("/uploads/"+us.Id, data, "multipart/form-data;")
|
||||
require.Nil(t, info)
|
||||
require.Error(t, resp.Error)
|
||||
require.NotNil(t, resp.Error)
|
||||
require.Equal(t, "api.upload.upload_data.invalid_content_type", resp.Error.Id)
|
||||
})
|
||||
|
||||
@@ -331,11 +331,11 @@ func TestUploadDataMultipart(t *testing.T) {
|
||||
mpData, contentType := genMultipartData(t, data)
|
||||
|
||||
req, err := http.NewRequest("POST", th.Client.ApiUrl+"/uploads/"+us.Id, mpData)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
req.Header.Set("Content-Type", contentType)
|
||||
req.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken)
|
||||
res, err := th.Client.HttpClient.Do(req)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
info := model.FileInfoFromJson(res.Body)
|
||||
res.Body.Close()
|
||||
require.NotEmpty(t, info)
|
||||
@@ -355,22 +355,22 @@ func TestUploadDataMultipart(t *testing.T) {
|
||||
require.NotEmpty(t, u)
|
||||
|
||||
req, err := http.NewRequest("POST", th.Client.ApiUrl+"/uploads/"+u.Id, mpData)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
req.Header.Set("Content-Type", contentType)
|
||||
req.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken)
|
||||
res, err := th.Client.HttpClient.Do(req)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, http.StatusNoContent, res.StatusCode)
|
||||
require.Equal(t, int64(0), res.ContentLength)
|
||||
|
||||
mpData, contentType = genMultipartData(t, data[5*1024*1024:])
|
||||
|
||||
req, err = http.NewRequest("POST", th.Client.ApiUrl+"/uploads/"+u.Id, mpData)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
req.Header.Set("Content-Type", contentType)
|
||||
req.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken)
|
||||
res, err = th.Client.HttpClient.Do(req)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
info := model.FileInfoFromJson(res.Body)
|
||||
res.Body.Close()
|
||||
require.NotEmpty(t, info)
|
||||
|
||||
@@ -199,7 +199,7 @@ func TestCreateUserWithToken(t *testing.T) {
|
||||
app.TokenTypeTeamInvitation,
|
||||
model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}),
|
||||
)
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
|
||||
ruser, resp := th.Client.CreateUserWithToken(&user, token.Token)
|
||||
CheckNoError(t, resp)
|
||||
@@ -210,10 +210,10 @@ func TestCreateUserWithToken(t *testing.T) {
|
||||
require.Equal(t, model.SYSTEM_USER_ROLE_ID, ruser.Roles, "should clear roles")
|
||||
CheckUserSanitization(t, ruser)
|
||||
_, err := th.App.Srv().Store.Token().GetByToken(token.Token)
|
||||
require.NotNil(t, err, "The token must be deleted after being used")
|
||||
require.Error(t, err, "The token must be deleted after being used")
|
||||
|
||||
teams, err := th.App.GetTeamsForUser(ruser.Id)
|
||||
require.Nil(t, err)
|
||||
teams, appErr := th.App.GetTeamsForUser(ruser.Id)
|
||||
require.Nil(t, appErr)
|
||||
require.NotEmpty(t, teams, "The user must have teams")
|
||||
require.Equal(t, th.BasicTeam.Id, teams[0].Id, "The user joined team must be the team provided.")
|
||||
})
|
||||
@@ -224,7 +224,7 @@ func TestCreateUserWithToken(t *testing.T) {
|
||||
app.TokenTypeTeamInvitation,
|
||||
model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}),
|
||||
)
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
|
||||
ruser, resp := client.CreateUserWithToken(&user, token.Token)
|
||||
CheckNoError(t, resp)
|
||||
@@ -235,10 +235,10 @@ func TestCreateUserWithToken(t *testing.T) {
|
||||
require.Equal(t, model.SYSTEM_USER_ROLE_ID, ruser.Roles, "should clear roles")
|
||||
CheckUserSanitization(t, ruser)
|
||||
_, err := th.App.Srv().Store.Token().GetByToken(token.Token)
|
||||
require.NotNil(t, err, "The token must be deleted after being used")
|
||||
require.Error(t, err, "The token must be deleted after being used")
|
||||
|
||||
teams, err := th.App.GetTeamsForUser(ruser.Id)
|
||||
require.Nil(t, err)
|
||||
teams, appErr := th.App.GetTeamsForUser(ruser.Id)
|
||||
require.Nil(t, appErr)
|
||||
require.NotEmpty(t, teams, "The user must have teams")
|
||||
require.Equal(t, th.BasicTeam.Id, teams[0].Id, "The user joined team must be the team provided.")
|
||||
}, "CreateWithTokenHappyPath")
|
||||
@@ -249,7 +249,7 @@ func TestCreateUserWithToken(t *testing.T) {
|
||||
app.TokenTypeTeamInvitation,
|
||||
model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}),
|
||||
)
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
defer th.App.DeleteToken(token)
|
||||
|
||||
_, resp := th.Client.CreateUserWithToken(&user, "")
|
||||
@@ -266,7 +266,7 @@ func TestCreateUserWithToken(t *testing.T) {
|
||||
model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}),
|
||||
)
|
||||
token.CreateAt = past49Hours
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
defer th.App.DeleteToken(token)
|
||||
|
||||
_, resp := th.Client.CreateUserWithToken(&user, token.Token)
|
||||
@@ -295,7 +295,7 @@ func TestCreateUserWithToken(t *testing.T) {
|
||||
app.TokenTypeTeamInvitation,
|
||||
model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}),
|
||||
)
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
defer th.App.DeleteToken(token)
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.EnableUserCreation = false })
|
||||
@@ -315,7 +315,7 @@ func TestCreateUserWithToken(t *testing.T) {
|
||||
app.TokenTypeTeamInvitation,
|
||||
model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}),
|
||||
)
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
defer th.App.DeleteToken(token)
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.EnableUserCreation = false })
|
||||
@@ -332,7 +332,7 @@ func TestCreateUserWithToken(t *testing.T) {
|
||||
app.TokenTypeTeamInvitation,
|
||||
model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}),
|
||||
)
|
||||
require.Nil(t, th.App.Srv().Store.Token().Save(token))
|
||||
require.NoError(t, th.App.Srv().Store.Token().Save(token))
|
||||
|
||||
enableOpenServer := th.App.Config().TeamSettings.EnableOpenServer
|
||||
defer func() {
|
||||
@@ -350,7 +350,7 @@ func TestCreateUserWithToken(t *testing.T) {
|
||||
require.Equal(t, model.SYSTEM_USER_ROLE_ID, ruser.Roles, "should clear roles")
|
||||
CheckUserSanitization(t, ruser)
|
||||
_, err := th.App.Srv().Store.Token().GetByToken(token.Token)
|
||||
require.NotNil(t, err, "The token must be deleted after be used")
|
||||
require.Error(t, err, "The token must be deleted after be used")
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1658,7 +1658,7 @@ func TestUpdateUser(t *testing.T) {
|
||||
CheckForbiddenStatus(t, resp)
|
||||
|
||||
r, err := th.Client.DoApiPut("/users/"+ruser.Id, "garbage")
|
||||
require.Error(t, err)
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, http.StatusBadRequest, r.StatusCode)
|
||||
|
||||
session, _ := th.App.GetSession(th.Client.AuthToken)
|
||||
@@ -1720,7 +1720,7 @@ func TestPatchUser(t *testing.T) {
|
||||
require.Empty(t, ruser.Timezone["manualTimezone"], "manualTimezone should update properly")
|
||||
|
||||
err := th.App.CheckPasswordAndAllCriteria(ruser, *patch.Password, "")
|
||||
assert.Error(t, err, "Password should not match")
|
||||
require.NotNil(t, err, "Password should not match")
|
||||
|
||||
currentPassword := user.Password
|
||||
user, err = th.App.GetUser(ruser.Id)
|
||||
@@ -1755,7 +1755,7 @@ func TestPatchUser(t *testing.T) {
|
||||
CheckForbiddenStatus(t, resp)
|
||||
|
||||
r, err := th.Client.DoApiPut("/users/"+user.Id+"/patch", "garbage")
|
||||
require.Error(t, err)
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, http.StatusBadRequest, r.StatusCode)
|
||||
|
||||
session, _ := th.App.GetSession(th.Client.AuthToken)
|
||||
@@ -1851,7 +1851,7 @@ func TestUpdateUserAuth(t *testing.T) {
|
||||
|
||||
th.LinkUserToTeam(user, team)
|
||||
_, err := th.App.Srv().Store.User().VerifyEmail(user.Id, user.Email)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
userAuth := &model.UserAuth{}
|
||||
userAuth.AuthData = user.AuthData
|
||||
@@ -1884,7 +1884,7 @@ func TestUpdateUserAuth(t *testing.T) {
|
||||
user2 := th.CreateUser()
|
||||
th.LinkUserToTeam(user2, team)
|
||||
_, err = th.App.Srv().Store.User().VerifyEmail(user2.Id, user2.Email)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
th.SystemAdminClient.Login(user2.Email, "passwd1")
|
||||
|
||||
@@ -2010,11 +2010,11 @@ func TestPermanentDeleteAllUsers(t *testing.T) {
|
||||
|
||||
// Check that we have users and posts in the database
|
||||
users, nErr := th.App.Srv().Store.User().GetAll()
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
require.Greater(t, len(users), 0)
|
||||
|
||||
postCount, nErr := th.App.Srv().Store.Post().AnalyticsPostCount("", false, false)
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
require.Greater(t, postCount, int64(0))
|
||||
|
||||
// Delete all users and their posts
|
||||
@@ -2023,11 +2023,11 @@ func TestPermanentDeleteAllUsers(t *testing.T) {
|
||||
|
||||
// Check that both user and post tables are empty
|
||||
users, nErr = th.App.Srv().Store.User().GetAll()
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
require.Len(t, users, 0)
|
||||
|
||||
postCount, nErr = th.App.Srv().Store.Post().AnalyticsPostCount("", false, false)
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
require.Equal(t, postCount, int64(0))
|
||||
|
||||
// Check that the channel and team created by the user were not deleted
|
||||
@@ -2139,7 +2139,7 @@ func TestUpdateUserActive(t *testing.T) {
|
||||
|
||||
authData := model.NewId()
|
||||
_, err := th.App.Srv().Store.User().UpdateAuthData(user.Id, "random", &authData, "", true)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, resp = client.UpdateUserActive(user.Id, false)
|
||||
CheckNoError(t, resp)
|
||||
@@ -2361,7 +2361,7 @@ func TestGetUsersWithoutTeam(t *testing.T) {
|
||||
defer th.TearDown()
|
||||
|
||||
_, resp := th.Client.GetUsersWithoutTeam(0, 100, "")
|
||||
require.Error(t, resp.Error, "should prevent non-admin user from getting users without a team")
|
||||
require.NotNil(t, resp.Error, "should prevent non-admin user from getting users without a team")
|
||||
|
||||
// These usernames need to appear in the first 100 users for this to work
|
||||
|
||||
@@ -2687,13 +2687,13 @@ func TestUserLoginMFAFlow(t *testing.T) {
|
||||
|
||||
// Fake user has MFA enabled
|
||||
nErr := th.Server.Store.User().UpdateMfaActive(th.BasicUser.Id, true)
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
nErr = th.Server.Store.User().UpdateMfaActive(th.BasicUser.Id, true)
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
nErr = th.Server.Store.User().UpdateMfaSecret(th.BasicUser.Id, secret.Secret)
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
user, resp := th.Client.Login(th.BasicUser.Email, th.BasicUser.Password)
|
||||
CheckErrorMessage(t, resp, "mfa.validate_token.authenticate.app_error")
|
||||
@@ -2720,10 +2720,10 @@ func TestUserLoginMFAFlow(t *testing.T) {
|
||||
|
||||
// Fake user has MFA enabled
|
||||
nErr := th.Server.Store.User().UpdateMfaActive(th.BasicUser.Id, true)
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
nErr = th.Server.Store.User().UpdateMfaSecret(th.BasicUser.Id, secret.Secret)
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
code := dgoogauth.ComputeCode(secret.Secret, time.Now().UTC().Unix()/30)
|
||||
|
||||
@@ -2895,7 +2895,7 @@ func TestResetPassword(t *testing.T) {
|
||||
recoveryTokenString = resultsEmail.Body.Text[loc : loc+model.TOKEN_SIZE]
|
||||
}
|
||||
recoveryToken, err := th.App.Srv().Store.Token().GetByToken(recoveryTokenString)
|
||||
require.Nil(t, err, "Recovery token not found (%s)", recoveryTokenString)
|
||||
require.NoError(t, err, "Recovery token not found (%s)", recoveryTokenString)
|
||||
|
||||
_, resp := th.Client.ResetPassword(recoveryToken.Token, "")
|
||||
CheckBadRequestStatus(t, resp)
|
||||
@@ -2920,7 +2920,7 @@ func TestResetPassword(t *testing.T) {
|
||||
CheckBadRequestStatus(t, resp)
|
||||
authData := model.NewId()
|
||||
_, err = th.App.Srv().Store.User().UpdateAuthData(user.Id, "random", &authData, "", true)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
|
||||
_, resp = client.SendPasswordResetEmail(user.Email)
|
||||
CheckBadRequestStatus(t, resp)
|
||||
@@ -3070,10 +3070,10 @@ func TestRevokeSessionsFromAllUsers(t *testing.T) {
|
||||
th.Client.Login(admin.Email, admin.Password)
|
||||
sessions, err := th.Server.Store.Session().GetSessions(user.Id)
|
||||
require.NotEmpty(t, sessions)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
sessions, err = th.Server.Store.Session().GetSessions(admin.Id)
|
||||
require.NotEmpty(t, sessions)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
_, resp = th.Client.RevokeSessionsFromAllUsers()
|
||||
CheckNoError(t, resp)
|
||||
|
||||
@@ -3084,11 +3084,11 @@ func TestRevokeSessionsFromAllUsers(t *testing.T) {
|
||||
|
||||
sessions, err = th.Server.Store.Session().GetSessions(user.Id)
|
||||
require.Empty(t, sessions)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
sessions, err = th.Server.Store.Session().GetSessions(admin.Id)
|
||||
require.Empty(t, sessions)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
}
|
||||
|
||||
@@ -3235,19 +3235,19 @@ func TestSetProfileImage(t *testing.T) {
|
||||
require.Fail(t, "Should have failed either forbidden or unauthorized")
|
||||
}
|
||||
|
||||
buser, err := th.App.GetUser(user.Id)
|
||||
require.Nil(t, err)
|
||||
buser, appErr := th.App.GetUser(user.Id)
|
||||
require.Nil(t, appErr)
|
||||
|
||||
_, resp = th.SystemAdminClient.SetProfileImage(user.Id, data)
|
||||
CheckNoError(t, resp)
|
||||
|
||||
ruser, err := th.App.GetUser(user.Id)
|
||||
require.Nil(t, err)
|
||||
ruser, appErr := th.App.GetUser(user.Id)
|
||||
require.Nil(t, appErr)
|
||||
assert.True(t, buser.LastPictureUpdate < ruser.LastPictureUpdate, "Picture should have updated for user")
|
||||
|
||||
info := &model.FileInfo{Path: "users/" + user.Id + "/profile.png"}
|
||||
err = th.cleanupTestFile(info)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestSetDefaultProfileImage(t *testing.T) {
|
||||
@@ -3284,7 +3284,7 @@ func TestSetDefaultProfileImage(t *testing.T) {
|
||||
|
||||
info := &model.FileInfo{Path: "users/" + user.Id + "/profile.png"}
|
||||
cleanupErr := th.cleanupTestFile(info)
|
||||
require.Nil(t, cleanupErr)
|
||||
require.NoError(t, cleanupErr)
|
||||
}
|
||||
|
||||
func TestLogin(t *testing.T) {
|
||||
@@ -3594,7 +3594,7 @@ func TestSwitchAccount(t *testing.T) {
|
||||
|
||||
fakeAuthData := model.NewId()
|
||||
_, err := th.App.Srv().Store.User().UpdateAuthData(th.BasicUser.Id, model.USER_AUTH_SERVICE_GITLAB, &fakeAuthData, th.BasicUser.Email, true)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
sr = &model.SwitchRequest{
|
||||
CurrentService: model.USER_AUTH_SERVICE_GITLAB,
|
||||
@@ -4850,7 +4850,7 @@ func TestLoginLockout(t *testing.T) {
|
||||
|
||||
// Fake user has MFA enabled
|
||||
err := th.Server.Store.User().UpdateMfaActive(th.BasicUser2.Id, true)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
_, resp = th.Client.LoginWithMFA(th.BasicUser2.Email, th.BasicUser2.Password, "000000")
|
||||
CheckErrorMessage(t, resp, "api.user.check_user_mfa.bad_code.app_error")
|
||||
_, resp = th.Client.LoginWithMFA(th.BasicUser2.Email, th.BasicUser2.Password, "000000")
|
||||
@@ -4864,7 +4864,7 @@ func TestLoginLockout(t *testing.T) {
|
||||
|
||||
// Fake user has MFA disabled
|
||||
err = th.Server.Store.User().UpdateMfaActive(th.BasicUser2.Id, false)
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
//Check if lock is active
|
||||
_, resp = th.Client.Login(th.BasicUser2.Email, th.BasicUser2.Password)
|
||||
@@ -5476,7 +5476,7 @@ func TestThreadSocketEvents(t *testing.T) {
|
||||
if ev.EventType() == model.WEBSOCKET_EVENT_THREAD_UPDATED {
|
||||
caught = true
|
||||
thread, err := model.ThreadFromJson(ev.GetData()["thread"].(string))
|
||||
require.Nil(t, err)
|
||||
require.NoError(t, err)
|
||||
require.Contains(t, thread.Participants, th.BasicUser.Id)
|
||||
require.Contains(t, thread.Participants, th.BasicUser2.Id)
|
||||
}
|
||||
|
||||
@@ -160,41 +160,41 @@ func TestWebsocketOriginSecurity(t *testing.T) {
|
||||
"Origin": []string{"http://www.evil.com"},
|
||||
})
|
||||
|
||||
require.NotNil(t, err, "Should have errored because Origin does not match host! SECURITY ISSUE!")
|
||||
require.Error(t, err, "Should have errored because Origin does not match host! SECURITY ISSUE!")
|
||||
|
||||
// We are not a browser so we can spoof this just fine
|
||||
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{
|
||||
"Origin": []string{fmt.Sprintf("http://localhost:%v", th.App.Srv().ListenAddr.Port)},
|
||||
})
|
||||
require.Nil(t, err, err)
|
||||
require.NoError(t, err, err)
|
||||
|
||||
// Should succeed now because open CORS
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "*" })
|
||||
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{
|
||||
"Origin": []string{"http://www.evil.com"},
|
||||
})
|
||||
require.Nil(t, err, err)
|
||||
require.NoError(t, err, err)
|
||||
|
||||
// Should succeed now because matching CORS
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "http://www.evil.com" })
|
||||
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{
|
||||
"Origin": []string{"http://www.evil.com"},
|
||||
})
|
||||
require.Nil(t, err, err)
|
||||
require.NoError(t, err, err)
|
||||
|
||||
// Should fail because non-matching CORS
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "http://www.good.com" })
|
||||
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{
|
||||
"Origin": []string{"http://www.evil.com"},
|
||||
})
|
||||
require.NotNil(t, err, "Should have errored because Origin contain AllowCorsFrom")
|
||||
require.Error(t, err, "Should have errored because Origin contain AllowCorsFrom")
|
||||
|
||||
// Should fail because non-matching CORS
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "http://www.good.com" })
|
||||
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{
|
||||
"Origin": []string{"http://www.good.co"},
|
||||
})
|
||||
require.NotNil(t, err, "Should have errored because Origin does not match host! SECURITY ISSUE!")
|
||||
require.Error(t, err, "Should have errored because Origin does not match host! SECURITY ISSUE!")
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "" })
|
||||
}
|
||||
@@ -219,13 +219,13 @@ func TestWebSocketStatuses(t *testing.T) {
|
||||
ruser := Client.Must(Client.CreateUser(&user)).(*model.User)
|
||||
th.LinkUserToTeam(ruser, rteam)
|
||||
_, nErr := th.App.Srv().Store.User().VerifyEmail(ruser.Id, ruser.Email)
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
user2 := model.User{Email: strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"}
|
||||
ruser2 := Client.Must(Client.CreateUser(&user2)).(*model.User)
|
||||
th.LinkUserToTeam(ruser2, rteam)
|
||||
_, nErr = th.App.Srv().Store.User().VerifyEmail(ruser2.Id, ruser2.Email)
|
||||
require.Nil(t, nErr)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
Client.Login(user.Email, user.Password)
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user