From e2a2a1a5bce69f153e6e095e07dadf92b64df699 Mon Sep 17 00:00:00 2001 From: Luke Kingland Date: Fri, 29 Nov 2019 07:41:51 +0900 Subject: [PATCH] post_test: use testify (#12948) Automatic Merge --- api4/post_test.go | 1000 +++++++++++++-------------------------------- 1 file changed, 289 insertions(+), 711 deletions(-) diff --git a/api4/post_test.go b/api4/post_test.go index cd43ae20aa..5fb538d046 100644 --- a/api4/post_test.go +++ b/api4/post_test.go @@ -11,7 +11,6 @@ import ( "net/url" "reflect" "sort" - "strconv" "strings" "testing" "time" @@ -35,25 +34,11 @@ func TestCreatePost(t *testing.T) { CheckNoError(t, resp) CheckCreatedStatus(t, resp) - if rpost.Message != post.Message { - t.Fatal("message didn't match") - } - - if rpost.Hashtags != "#hashtag" { - t.Fatal("hashtag didn't match") - } - - if len(rpost.FileIds) != 0 { - t.Fatal("shouldn't have files") - } - - if rpost.EditAt != 0 { - t.Fatal("newly created post shouldn't have EditAt set") - } - - if rpost.Props[model.PROPS_ADD_CHANNEL_MEMBER] != nil { - t.Fatal("newly created post shouldn't have Props['add_channel_member'] set") - } + require.Equal(t, post.Message, rpost.Message, "message didn't match") + require.Equal(t, "#hashtag", rpost.Hashtags, "hashtag didn't match") + require.Len(t, rpost.FileIds, 0, "shouldn't have files") + require.Equal(t, 0, int(rpost.EditAt), "newly created post shouldn't have EditAt set") + require.Nil(t, rpost.Props[model.PROPS_ADD_CHANNEL_MEMBER], "newly created post shouldn't have Props['add_channel_member'] set") post.RootId = rpost.Id post.ParentId = rpost.Id @@ -71,10 +56,7 @@ func TestCreatePost(t *testing.T) { post2 := &model.Post{ChannelId: th.BasicChannel2.Id, Message: "zz" + model.NewId() + "a", CreateAt: 123} rpost2, _ := Client.CreatePost(post2) - - if rpost2.CreateAt == post2.CreateAt { - t.Fatal("create at should not match") - } + require.NotEqual(t, post2.CreateAt, rpost2.CreateAt, "create at should not match") t.Run("with file uploaded by same user", func(t *testing.T) { fileResp, subResponse := Client.UploadFile([]byte("data"), th.BasicChannel.Id, "test") @@ -152,15 +134,9 @@ func TestCreatePost(t *testing.T) { _, resp = Client.CreatePost(post) CheckForbiddenStatus(t, resp) - if r, err := Client.DoApiPost("/posts", "garbage"); err == nil { - t.Fatal("should have errored") - } else { - if r.StatusCode != http.StatusBadRequest { - t.Log("actual: " + strconv.Itoa(r.StatusCode)) - t.Log("expected: " + strconv.Itoa(http.StatusBadRequest)) - t.Fatal("wrong status code") - } - } + r, err := Client.DoApiPost("/posts", "garbage") + require.Error(t, err) + require.Equal(t, http.StatusBadRequest, r.StatusCode) Client.Logout() _, resp = Client.CreatePost(post) @@ -170,10 +146,7 @@ func TestCreatePost(t *testing.T) { post.CreateAt = 123 rpost, resp = th.SystemAdminClient.CreatePost(post) CheckNoError(t, resp) - - if rpost.CreateAt != post.CreateAt { - t.Fatal("create at should match") - } + require.Equal(t, post.CreateAt, rpost.CreateAt, "create at should match") } func TestCreatePostEphemeral(t *testing.T) { @@ -189,24 +162,12 @@ func TestCreatePostEphemeral(t *testing.T) { rpost, resp := Client.CreatePostEphemeral(ephemeralPost) CheckNoError(t, resp) CheckCreatedStatus(t, resp) + require.Equal(t, ephemeralPost.Post.Message, rpost.Message, "message didn't match") + require.Equal(t, 0, int(rpost.EditAt), "newly created ephemeral post shouldn't have EditAt set") - if rpost.Message != ephemeralPost.Post.Message { - t.Fatal("message didn't match") - } - - if rpost.EditAt != 0 { - t.Fatal("newly created ephemeral post shouldn't have EditAt set") - } - - if r, err := Client.DoApiPost("/posts/ephemeral", "garbage"); err == nil { - t.Fatal("should have errored") - } else { - if r.StatusCode != http.StatusBadRequest { - t.Log("actual: " + strconv.Itoa(r.StatusCode)) - t.Log("expected: " + strconv.Itoa(http.StatusBadRequest)) - t.Fatal("wrong status code") - } - } + r, err := Client.DoApiPost("/posts/ephemeral", "garbage") + require.Error(t, err) + require.Equal(t, http.StatusBadRequest, r.StatusCode) Client.Logout() _, resp = Client.CreatePostEphemeral(ephemeralPost) @@ -357,29 +318,20 @@ func testCreatePostWithOutgoingHook( // the test fail if that doesn't happen before the timeout. select { case ok := <-success: - if !ok { - t.Fatal("Test server did send an invalid webhook.") - } + require.True(t, ok, "Test server did send an invalid webhook.") case <-time.After(time.Second): - t.Fatal("Timeout, test server did not send the webhook.") + require.FailNow(t, "Timeout, test server did not send the webhook.") } if commentPostType { time.Sleep(time.Millisecond * 100) postList, resp := th.SystemAdminClient.GetPostThread(post.Id, "") CheckNoError(t, resp) - if postList.Order[0] != post.Id { - t.Fatal("wrong order") - } - - if _, ok := postList.Posts[post.Id]; !ok { - t.Fatal("should have had post") - } - - if len(postList.Posts) != 2 { - t.Fatal("should have 2 posts") - } + require.Equal(t, post.Id, postList.Order[0], "wrong order") + _, ok := postList.Posts[post.Id] + require.True(t, ok, "should have had post") + require.Len(t, postList.Posts, 2, "should have 2 posts") } } @@ -518,9 +470,7 @@ func TestCreatePostSendOutOfChannelMentions(t *testing.T) { Client := th.Client WebSocketClient, err := th.CreateWebSocketClient() - if err != nil { - t.Fatal(err) - } + require.Nil(t, err) WebSocketClient.Listen() inChannelUser := th.CreateUser() @@ -537,10 +487,7 @@ func TestCreatePostSendOutOfChannelMentions(t *testing.T) { for waiting { select { case event := <-WebSocketClient.EventChannel: - if event.Event == model.WEBSOCKET_EVENT_EPHEMERAL_MESSAGE { - t.Fatal("should not have ephemeral message event") - } - + require.NotEqual(t, model.WEBSOCKET_EVENT_EPHEMERAL_MESSAGE, event.Event, "should not have ephemeral message event") case <-timeout: waiting = false } @@ -565,16 +512,15 @@ func TestCreatePostSendOutOfChannelMentions(t *testing.T) { } wpost := model.PostFromJson(strings.NewReader(event.Data["post"].(string))) - if acm, ok := wpost.Props[model.PROPS_ADD_CHANNEL_MEMBER].(map[string]interface{}); !ok { - t.Fatal("should have received ephemeral post with 'add_channel_member' in props") - } else { - if acm["post_id"] == nil || acm["user_ids"] == nil || acm["usernames"] == nil { - t.Fatal("should not be nil") - } - } + + acm, ok := wpost.Props[model.PROPS_ADD_CHANNEL_MEMBER].(map[string]interface{}) + require.True(t, ok, "should have received ephemeral post with 'add_channel_member' in props") + require.True(t, acm["post_id"] != nil, "should not be nil") + require.True(t, acm["user_ids"] != nil, "should not be nil") + require.True(t, acm["usernames"] != nil, "should not be nil") waiting = false case <-timeout: - t.Fatal("timed out waiting for ephemeral message event") + require.FailNow(t, "timed out waiting for ephemeral message event") } } } @@ -880,20 +826,14 @@ func TestPinPost(t *testing.T) { pass, resp := Client.PinPost(post.Id) CheckNoError(t, resp) - if !pass { - t.Fatal("should have passed") - } - - if rpost, err := th.App.GetSinglePost(post.Id); err != nil && !rpost.IsPinned { - t.Fatal("failed to pin post") - } + require.True(t, pass, "should have passed") + rpost, err := th.App.GetSinglePost(post.Id) + require.Nil(t, err) + require.True(t, rpost.IsPinned, "failed to pin post") pass, resp = Client.PinPost("junk") CheckBadRequestStatus(t, resp) - - if pass { - t.Fatal("should have failed") - } + require.False(t, pass, "should have failed") _, resp = Client.PinPost(GenerateTestId()) CheckForbiddenStatus(t, resp) @@ -930,21 +870,15 @@ func TestUnpinPost(t *testing.T) { pinnedPost := th.CreatePinnedPost() pass, resp := Client.UnpinPost(pinnedPost.Id) CheckNoError(t, resp) + require.True(t, pass, "should have passed") - if !pass { - t.Fatal("should have passed") - } - - if rpost, err := th.App.GetSinglePost(pinnedPost.Id); err != nil && rpost.IsPinned { - t.Fatal("failed to pin post") - } + rpost, err := th.App.GetSinglePost(pinnedPost.Id) + require.Nil(t, err) + require.False(t, rpost.IsPinned) pass, resp = Client.UnpinPost("junk") CheckBadRequestStatus(t, resp) - - if pass { - t.Fatal("should have failed") - } + require.False(t, pass, "should have failed") _, resp = Client.UnpinPost(GenerateTestId()) CheckForbiddenStatus(t, resp) @@ -975,88 +909,53 @@ func TestGetPostsForChannel(t *testing.T) { posts, resp := Client.GetPostsForChannel(th.BasicChannel.Id, 0, 60, "") CheckNoError(t, resp) - - if posts.Order[0] != post4.Id { - t.Fatal("wrong order") - } - - if posts.Order[1] != post3.Id { - t.Fatal("wrong order") - } - - if posts.Order[2] != post2.Id { - t.Fatal("wrong order") - } - - if posts.Order[3] != post1.Id { - t.Fatal("wrong order") - } + require.Equal(t, post4.Id, posts.Order[0], "wrong order") + require.Equal(t, post3.Id, posts.Order[1], "wrong order") + require.Equal(t, post2.Id, posts.Order[2], "wrong order") + require.Equal(t, post1.Id, posts.Order[3], "wrong order") posts, resp = Client.GetPostsForChannel(th.BasicChannel.Id, 0, 3, resp.Etag) CheckEtag(t, posts, resp) posts, resp = Client.GetPostsForChannel(th.BasicChannel.Id, 0, 3, "") CheckNoError(t, resp) + require.Len(t, posts.Order, 3, "wrong number returned") - if len(posts.Order) != 3 { - t.Fatal("wrong number returned") - } - - if _, ok := posts.Posts[post3.Id]; !ok { - t.Fatal("missing comment") - } - - if _, ok := posts.Posts[post1.Id]; !ok { - t.Fatal("missing root post") - } + _, ok := posts.Posts[post3.Id] + require.True(t, ok, "missing comment") + _, ok = posts.Posts[post1.Id] + require.True(t, ok, "missing root post") posts, resp = Client.GetPostsForChannel(th.BasicChannel.Id, 1, 1, "") CheckNoError(t, resp) - - if posts.Order[0] != post3.Id { - t.Fatal("wrong order") - } + require.Equal(t, post3.Id, posts.Order[0], "wrong order") posts, resp = Client.GetPostsForChannel(th.BasicChannel.Id, 10000, 10000, "") CheckNoError(t, resp) - - if len(posts.Order) != 0 { - t.Fatal("should be no posts") - } + require.Len(t, posts.Order, 0, "should be no posts") post5 := th.CreatePost() posts, resp = Client.GetPostsSince(th.BasicChannel.Id, since) CheckNoError(t, resp) + require.Len(t, posts.Posts, 2, "should return 2 posts") - if len(posts.Posts) != 2 { - t.Log(posts.Posts) - t.Fatal("should return 2 posts") - } // "since" query to return empty NextPostId and PrevPostId - if posts.NextPostId != "" { - t.Fatal("should return an empty NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return an empty PrevPostId") - } + require.Equal(t, "", posts.NextPostId, "should return an empty NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return an empty PrevPostId") found := make([]bool, 2) for _, p := range posts.Posts { - if p.CreateAt < since { - t.Fatal("bad create at for post returned") - } + require.LessOrEqual(t, since, p.CreateAt, "bad create at for post returned") + if p.Id == post4.Id { found[0] = true } else if p.Id == post5.Id { found[1] = true } } - for _, f := range found { - if !f { - t.Fatal("missing post") - } + require.True(t, f, "missing post") } _, resp = Client.GetPostsForChannel("", 0, 60, "") @@ -1091,80 +990,54 @@ func TestGetPostsForChannel(t *testing.T) { // similar to '/posts' posts, resp = Client.GetPostsForChannel(th.BasicChannel.Id, 0, 60, "") CheckNoError(t, resp) - if len(posts.Order) != 12 || posts.Order[0] != post10.Id || posts.Order[11] != systemPostId1 { - t.Fatal("should return 12 posts and match order") - } - if posts.NextPostId != "" { - t.Fatal("should return an empty NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return an empty PrevPostId") - } + require.Len(t, posts.Order, 12, "expected 12 posts") + require.Equal(t, post10.Id, posts.Order[0], "posts not in order") + require.Equal(t, systemPostId1, posts.Order[11], "posts not in order") + require.Equal(t, "", posts.NextPostId, "should return an empty NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return an empty PrevPostId") // similar to '/posts?per_page=3' posts, resp = Client.GetPostsForChannel(th.BasicChannel.Id, 0, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 3 || posts.Order[0] != post10.Id || posts.Order[2] != post8.Id { - t.Fatal("should return 3 posts and match order") - } - if posts.NextPostId != "" { - t.Fatal("should return an empty NextPostId") - } - if posts.PrevPostId != post7.Id { - t.Fatal("should return post7.Id as PrevPostId") - } + require.Len(t, posts.Order, 3, "expected 3 posts") + require.Equal(t, post10.Id, posts.Order[0], "posts not in order") + require.Equal(t, post8.Id, posts.Order[2], "should return 3 posts and match order") + require.Equal(t, "", posts.NextPostId, "should return an empty NextPostId") + require.Equal(t, post7.Id, posts.PrevPostId, "should return post7.Id as PrevPostId") // similar to '/posts?per_page=3&page=1' posts, resp = Client.GetPostsForChannel(th.BasicChannel.Id, 1, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 3 || posts.Order[0] != post7.Id || posts.Order[2] != post5.Id { - t.Fatal("should return 3 posts and match order") - } - if posts.NextPostId != post8.Id { - t.Fatal("should return post8.Id as NextPostId") - } - if posts.PrevPostId != post4.Id { - t.Fatal("should return post4.Id as PrevPostId") - } + require.Len(t, posts.Order, 3, "expected 3 posts") + require.Equal(t, post7.Id, posts.Order[0], "posts not in order") + require.Equal(t, post5.Id, posts.Order[2], "posts not in order") + require.Equal(t, post8.Id, posts.NextPostId, "should return post8.Id as NextPostId") + require.Equal(t, post4.Id, posts.PrevPostId, "should return post4.Id as PrevPostId") // similar to '/posts?per_page=3&page=2' posts, resp = Client.GetPostsForChannel(th.BasicChannel.Id, 2, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 3 || posts.Order[0] != post4.Id || posts.Order[2] != post2.Id { - t.Fatal("should return 3 posts and match order") - } - if posts.NextPostId != post5.Id { - t.Fatal("should return post5.Id as NextPostId") - } - if posts.PrevPostId != post1.Id { - t.Fatal("should return post1.Id as PrevPostId") - } + require.Len(t, posts.Order, 3, "expected 3 posts") + require.Equal(t, post4.Id, posts.Order[0], "posts not in order") + require.Equal(t, post2.Id, posts.Order[2], "should return 3 posts and match order") + require.Equal(t, post5.Id, posts.NextPostId, "should return post5.Id as NextPostId") + require.Equal(t, post1.Id, posts.PrevPostId, "should return post1.Id as PrevPostId") // similar to '/posts?per_page=3&page=3' posts, resp = Client.GetPostsForChannel(th.BasicChannel.Id, 3, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 3 || posts.Order[0] != post1.Id || posts.Order[2] != systemPostId1 { - t.Fatal("should return 3 posts and match order") - } - if posts.NextPostId != post2.Id { - t.Fatal("should return post2.Id as NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return an empty PrevPostId") - } + require.Len(t, posts.Order, 3, "expected 3 posts") + require.Equal(t, post1.Id, posts.Order[0], "posts not in order") + require.Equal(t, systemPostId1, posts.Order[2], "should return 3 posts and match order") + require.Equal(t, post2.Id, posts.NextPostId, "should return post2.Id as NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return an empty PrevPostId") // similar to '/posts?per_page=3&page=4' posts, resp = Client.GetPostsForChannel(th.BasicChannel.Id, 4, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 0 { - t.Fatal("should return 0 post") - } - if posts.NextPostId != "" { - t.Fatal("should return an empty NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return an empty PrevPostId") - } + require.Len(t, posts.Order, 0, "should return 0 post") + require.Equal(t, "", posts.NextPostId, "should return an empty NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return an empty PrevPostId") } func TestGetFlaggedPostsForUser(t *testing.T) { @@ -1197,90 +1070,52 @@ func TestGetFlaggedPostsForUser(t *testing.T) { rpl, resp := Client.GetFlaggedPostsForUserInChannel(user.Id, channel1.Id, 0, 10) CheckNoError(t, resp) - if len(rpl.Posts) != 1 { - t.Fatal("should have returned 1 post") - } - - if !reflect.DeepEqual(rpl.Posts, opl.Posts) { - t.Fatal("posts should have matched") - } + require.Len(t, rpl.Posts, 1, "should have returned 1 post") + require.Equal(t, opl.Posts, rpl.Posts, "posts should have matched") rpl, resp = Client.GetFlaggedPostsForUserInChannel(user.Id, channel1.Id, 0, 1) CheckNoError(t, resp) - - if len(rpl.Posts) != 1 { - t.Fatal("should have returned 1 post") - } + require.Len(t, rpl.Posts, 1, "should have returned 1 post") rpl, resp = Client.GetFlaggedPostsForUserInChannel(user.Id, channel1.Id, 1, 1) CheckNoError(t, resp) - - if len(rpl.Posts) != 0 { - t.Fatal("should be empty") - } + require.Len(t, rpl.Posts, 0, "should be empty") rpl, resp = Client.GetFlaggedPostsForUserInChannel(user.Id, GenerateTestId(), 0, 10) CheckNoError(t, resp) - - if len(rpl.Posts) != 0 { - t.Fatal("should be empty") - } + require.Len(t, rpl.Posts, 0, "should be empty") rpl, resp = Client.GetFlaggedPostsForUserInChannel(user.Id, "junk", 0, 10) CheckBadRequestStatus(t, resp) - - if rpl != nil { - t.Fatal("should be nil") - } + require.Nil(t, rpl) opl.AddPost(post2) opl.AddOrder(post2.Id) rpl, resp = Client.GetFlaggedPostsForUserInTeam(user.Id, team1.Id, 0, 10) CheckNoError(t, resp) - - if len(rpl.Posts) != 2 { - t.Fatal("should have returned 2 posts") - } - - if !reflect.DeepEqual(rpl.Posts, opl.Posts) { - t.Fatal("posts should have matched") - } + require.Len(t, rpl.Posts, 2, "should have returned 2 posts") + require.Equal(t, opl.Posts, rpl.Posts, "posts should have matched") rpl, resp = Client.GetFlaggedPostsForUserInTeam(user.Id, team1.Id, 0, 1) CheckNoError(t, resp) - - if len(rpl.Posts) != 1 { - t.Fatal("should have returned 1 post") - } + require.Len(t, rpl.Posts, 1, "should have returned 1 post") rpl, resp = Client.GetFlaggedPostsForUserInTeam(user.Id, team1.Id, 1, 1) CheckNoError(t, resp) - - if len(rpl.Posts) != 1 { - t.Fatal("should have returned 1 post") - } + require.Len(t, rpl.Posts, 1, "should have returned 1 post") rpl, resp = Client.GetFlaggedPostsForUserInTeam(user.Id, team1.Id, 1000, 10) CheckNoError(t, resp) - - if len(rpl.Posts) != 0 { - t.Fatal("should be empty") - } + require.Len(t, rpl.Posts, 0, "should be empty") rpl, resp = Client.GetFlaggedPostsForUserInTeam(user.Id, GenerateTestId(), 0, 10) CheckNoError(t, resp) - - if len(rpl.Posts) != 0 { - t.Fatal("should be empty") - } + require.Len(t, rpl.Posts, 0, "should be empty") rpl, resp = Client.GetFlaggedPostsForUserInTeam(user.Id, "junk", 0, 10) CheckBadRequestStatus(t, resp) - - if rpl != nil { - t.Fatal("should be nil") - } + require.Nil(t, rpl) channel3 := th.CreatePrivateChannel() post4 := th.CreatePostWithClient(Client, channel3) @@ -1293,35 +1128,20 @@ func TestGetFlaggedPostsForUser(t *testing.T) { rpl, resp = Client.GetFlaggedPostsForUser(user.Id, 0, 10) CheckNoError(t, resp) - - if len(rpl.Posts) != 3 { - t.Fatal("should have returned 3 posts") - } - - if !reflect.DeepEqual(rpl.Posts, opl.Posts) { - t.Fatal("posts should have matched") - } + require.Len(t, rpl.Posts, 3, "should have returned 3 posts") + require.Equal(t, opl.Posts, rpl.Posts, "posts should have matched") rpl, resp = Client.GetFlaggedPostsForUser(user.Id, 0, 2) CheckNoError(t, resp) - - if len(rpl.Posts) != 2 { - t.Fatal("should have returned 2 posts") - } + require.Len(t, rpl.Posts, 2, "should have returned 2 posts") rpl, resp = Client.GetFlaggedPostsForUser(user.Id, 2, 2) CheckNoError(t, resp) - - if len(rpl.Posts) != 1 { - t.Fatal("should have returned 1 post") - } + require.Len(t, rpl.Posts, 1, "should have returned 1 post") rpl, resp = Client.GetFlaggedPostsForUser(user.Id, 1000, 10) CheckNoError(t, resp) - - if len(rpl.Posts) != 0 { - t.Fatal("should be empty") - } + require.Len(t, rpl.Posts, 0, "should be empty") channel4 := th.CreateChannelWithClient(th.SystemAdminClient, model.CHANNEL_PRIVATE) post5 := th.CreatePostWithClient(th.SystemAdminClient, channel4) @@ -1332,14 +1152,8 @@ func TestGetFlaggedPostsForUser(t *testing.T) { rpl, resp = Client.GetFlaggedPostsForUser(user.Id, 0, 10) CheckNoError(t, resp) - - if len(rpl.Posts) != 3 { - t.Fatal("should have returned 3 posts") - } - - if !reflect.DeepEqual(rpl.Posts, opl.Posts) { - t.Fatal("posts should have matched") - } + require.Len(t, rpl.Posts, 3, "should have returned 3 posts") + require.Equal(t, opl.Posts, rpl.Posts, "posts should have matched") th.AddUserToChannel(user, channel4) _, resp = Client.UpdatePreferences(user.Id, &model.Preferences{preference}) @@ -1350,19 +1164,11 @@ func TestGetFlaggedPostsForUser(t *testing.T) { opl.AddPost(post5) opl.AddOrder(post5.Id) - - if len(rpl.Posts) != 4 { - t.Fatal("should have returned 4 posts") - } - - if !reflect.DeepEqual(rpl.Posts, opl.Posts) { - t.Fatal("posts should have matched") - } + require.Len(t, rpl.Posts, 4, "should have returned 4 posts") + require.Equal(t, opl.Posts, rpl.Posts, "posts should have matched") err := th.App.RemoveUserFromChannel(user.Id, "", channel4) - if err != nil { - t.Error("Unable to remove user from channel") - } + assert.Nil(t, err, "unable to remove user from channel") rpl, resp = Client.GetFlaggedPostsForUser(user.Id, 0, 10) CheckNoError(t, resp) @@ -1375,13 +1181,8 @@ func TestGetFlaggedPostsForUser(t *testing.T) { opl2.AddPost(post4) opl2.AddOrder(post4.Id) - if len(rpl.Posts) != 3 { - t.Fatal("should have returned 3 posts") - } - - if !reflect.DeepEqual(rpl.Posts, opl2.Posts) { - t.Fatal("posts should have matched") - } + require.Equal(t, 3, len(rpl.Posts), "should have returned 3 posts") + require.Equal(t, opl2.Posts, rpl.Posts, "posts should have matched") _, resp = Client.GetFlaggedPostsForUser("junk", 0, 10) CheckBadRequestStatus(t, resp) @@ -1432,61 +1233,34 @@ func TestGetPostsBefore(t *testing.T) { found[1] = true } - if p.Id == post4.Id || p.Id == post5.Id { - t.Fatal("returned posts after") - } + require.NotEqual(t, post4.Id, p.Id, "returned posts after") + require.NotEqual(t, post5.Id, p.Id, "returned posts after") } for _, f := range found { - if !f { - t.Fatal("missing post") - } + require.True(t, f, "missing post") } - if posts.NextPostId != post3.Id { - t.Fatal("should match NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should match empty PrevPostId") - } + require.Equal(t, post3.Id, posts.NextPostId, "should match NextPostId") + require.Equal(t, "", posts.PrevPostId, "should match empty PrevPostId") posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, post4.Id, 1, 1, "") CheckNoError(t, resp) - - if len(posts.Posts) != 1 { - t.Fatal("too many posts returned") - } - if posts.Order[0] != post2.Id { - t.Fatal("should match returned post") - } - if posts.NextPostId != post3.Id { - t.Fatal("should match NextPostId") - } - if posts.PrevPostId != post1.Id { - t.Fatal("should match PrevPostId") - } + require.Equal(t, 1, len(posts.Posts), "too many posts returned") + require.Equal(t, post2.Id, posts.Order[0], "should match returned post") + require.Equal(t, post3.Id, posts.NextPostId, "should match NextPostId") + require.Equal(t, post1.Id, posts.PrevPostId, "should match PrevPostId") posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, "junk", 1, 1, "") CheckBadRequestStatus(t, resp) posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, post5.Id, 0, 3, "") CheckNoError(t, resp) - - if len(posts.Posts) != 3 { - t.Fatal("should match length of posts returned") - } - if posts.Order[0] != post4.Id { - t.Fatal("should match returned post") - } - if posts.Order[2] != post2.Id { - t.Fatal("should match returned post") - } - if posts.NextPostId != post5.Id { - t.Fatal("should match NextPostId") - } - if posts.PrevPostId != post1.Id { - t.Fatal("should match PrevPostId") - } + require.Equal(t, 3, len(posts.Posts), "should match length of posts returned") + require.Equal(t, post4.Id, posts.Order[0], "should match returned post") + require.Equal(t, post2.Id, posts.Order[2], "should match returned post") + require.Equal(t, post5.Id, posts.NextPostId, "should match NextPostId") + require.Equal(t, post1.Id, posts.PrevPostId, "should match PrevPostId") // get the system post IDs posted before the created posts above posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, post1.Id, 0, 2, "") @@ -1496,25 +1270,12 @@ func TestGetPostsBefore(t *testing.T) { posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, post5.Id, 1, 3, "") CheckNoError(t, resp) - - if len(posts.Posts) != 3 { - t.Fatal("should match length of posts returned") - } - if posts.Order[0] != post1.Id { - t.Fatal("should match returned post") - } - if posts.Order[1] != systemPostId2 { - t.Fatal("should match returned post") - } - if posts.Order[2] != systemPostId1 { - t.Fatal("should match returned post") - } - if posts.NextPostId != post2.Id { - t.Fatal("should match NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return empty PrevPostId") - } + require.Equal(t, 3, len(posts.Posts), "should match length of posts returned") + require.Equal(t, post1.Id, posts.Order[0], "should match returned post") + require.Equal(t, systemPostId2, posts.Order[1], "should match returned post") + require.Equal(t, systemPostId1, posts.Order[2], "should match returned post") + require.Equal(t, post2.Id, posts.NextPostId, "should match NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return empty PrevPostId") // more tests for next_post_id, prev_post_id, and order // There are 12 posts composed of first 2 system messages and 10 created posts @@ -1527,107 +1288,69 @@ func TestGetPostsBefore(t *testing.T) { // similar to '/posts?before=post9' posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, post9.Id, 0, 60, "") CheckNoError(t, resp) - if len(posts.Order) != 10 || posts.Order[0] != post8.Id || posts.Order[9] != systemPostId1 { - t.Fatal("should return 10 posts and match order") - } - if posts.NextPostId != post9.Id { - t.Fatal("should return post9.Id as NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return an empty PrevPostId") - } + require.Equal(t, 10, len(posts.Order), "expected 10 posts") + require.Equal(t, post8.Id, posts.Order[0], "posts not in order") + require.Equal(t, systemPostId1, posts.Order[9], "posts not in order") + require.Equal(t, post9.Id, posts.NextPostId, "should return post9.Id as NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return an empty PrevPostId") // similar to '/posts?before=post9&per_page=3' posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, post9.Id, 0, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 3 || posts.Order[0] != post8.Id || posts.Order[2] != post6.Id { - t.Fatal("should return 3 posts and match order") - } - if posts.NextPostId != post9.Id { - t.Fatal("should return post9.Id as NextPostId") - } - if posts.PrevPostId != post5.Id { - t.Fatal("should return post5.Id as PrevPostId") - } + require.Equal(t, 3, len(posts.Order), "expected 3 posts") + require.Equal(t, post8.Id, posts.Order[0], "posts not in order") + require.Equal(t, post6.Id, posts.Order[2], "should return 3 posts and match order") + require.Equal(t, post9.Id, posts.NextPostId, "should return post9.Id as NextPostId") + require.Equal(t, post5.Id, posts.PrevPostId, "should return post5.Id as PrevPostId") // similar to '/posts?before=post9&per_page=3&page=1' posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, post9.Id, 1, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 3 || posts.Order[0] != post5.Id || posts.Order[2] != post3.Id { - t.Fatal("should return 3 posts and match order") - } - if posts.NextPostId != post6.Id { - t.Fatal("should return post6.Id as NextPostId") - } - if posts.PrevPostId != post2.Id { - t.Fatal("should return post2.Id as PrevPostId") - } + require.Equal(t, 3, len(posts.Order), "expected 3 posts") + require.Equal(t, post5.Id, posts.Order[0], "posts not in order") + require.Equal(t, post3.Id, posts.Order[2], "posts not in order") + require.Equal(t, post6.Id, posts.NextPostId, "should return post6.Id as NextPostId") + require.Equal(t, post2.Id, posts.PrevPostId, "should return post2.Id as PrevPostId") // similar to '/posts?before=post9&per_page=3&page=2' posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, post9.Id, 2, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 3 || posts.Order[0] != post2.Id || posts.Order[2] != systemPostId2 { - t.Fatal("should return 3 posts and match order") - } - if posts.NextPostId != post3.Id { - t.Fatal("should return post3.Id as NextPostId") - } - if posts.PrevPostId != systemPostId1 { - t.Fatal("should return systemPostId1 as PrevPostId") - } + require.Equal(t, 3, len(posts.Order), "expected 3 posts") + require.Equal(t, post2.Id, posts.Order[0], "posts not in order") + require.Equal(t, systemPostId2, posts.Order[2], "posts not in order") + require.Equal(t, post3.Id, posts.NextPostId, "should return post3.Id as NextPostId") + require.Equal(t, systemPostId1, posts.PrevPostId, "should return systemPostId1 as PrevPostId") // similar to '/posts?before=post1&per_page=3' posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, post1.Id, 0, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 2 || posts.Order[0] != systemPostId2 || posts.Order[1] != systemPostId1 { - t.Fatal("should return 2 posts and match order") - } - if posts.NextPostId != post1.Id { - t.Fatal("should return post1.Id as NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return an empty PrevPostId") - } + require.Equal(t, 2, len(posts.Order), "expected 2 posts") + require.Equal(t, systemPostId2, posts.Order[0], "posts not in order") + require.Equal(t, systemPostId1, posts.Order[1], "posts not in order") + require.Equal(t, post1.Id, posts.NextPostId, "should return post1.Id as NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return an empty PrevPostId") // similar to '/posts?before=systemPostId1' posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, systemPostId1, 0, 60, "") CheckNoError(t, resp) - if len(posts.Order) != 0 { - t.Fatal("should return 0 post") - } - if posts.NextPostId != systemPostId1 { - t.Fatal("should return systemPostId1 as NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return an empty PrevPostId") - } + require.Equal(t, 0, len(posts.Order), "should return 0 post") + require.Equal(t, systemPostId1, posts.NextPostId, "should return systemPostId1 as NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return an empty PrevPostId") // similar to '/posts?before=systemPostId1&per_page=60&page=1' posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, systemPostId1, 1, 60, "") CheckNoError(t, resp) - if len(posts.Order) != 0 { - t.Fatal("should return 0 post") - } - if posts.NextPostId != "" { - t.Fatal("should return an empty NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return an empty PrevPostId") - } + require.Equal(t, 0, len(posts.Order), "should return 0 posts") + require.Equal(t, "", posts.NextPostId, "should return an empty NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return an empty PrevPostId") // similar to '/posts?before=non-existent-post' nonExistentPostId := model.NewId() posts, resp = Client.GetPostsBefore(th.BasicChannel.Id, nonExistentPostId, 0, 60, "") CheckNoError(t, resp) - if len(posts.Order) != 0 { - t.Fatal("should return 0 post") - } - if posts.NextPostId != nonExistentPostId { - t.Fatal("should return nonExistentPostId as NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return an empty PrevPostId") - } + require.Equal(t, 0, len(posts.Order), "should return 0 post") + require.Equal(t, nonExistentPostId, posts.NextPostId, "should return nonExistentPostId as NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return an empty PrevPostId") } func TestGetPostsAfter(t *testing.T) { @@ -1651,78 +1374,40 @@ func TestGetPostsAfter(t *testing.T) { } else if p.Id == post5.Id { found[1] = true } - - if p.Id == post1.Id || p.Id == post2.Id { - t.Fatal("returned posts before") - } + require.NotEqual(t, post1.Id, p.Id, "returned posts before") + require.NotEqual(t, post2.Id, p.Id, "returned posts before") } for _, f := range found { - if !f { - t.Fatal("missing post") - } - } - - if posts.NextPostId != "" { - t.Fatal("should match empty NextPostId") - } - if posts.PrevPostId != post3.Id { - t.Fatal("should match PrevPostId") + require.True(t, f, "missing post") } + require.Equal(t, "", posts.NextPostId, "should match empty NextPostId") + require.Equal(t, post3.Id, posts.PrevPostId, "should match PrevPostId") posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, post2.Id, 1, 1, "") CheckNoError(t, resp) - - if len(posts.Posts) != 1 { - t.Fatal("too many posts returned") - } - if posts.Order[0] != post4.Id { - t.Fatal("should match returned post") - } - if posts.NextPostId != post5.Id { - t.Fatal("should match NextPostId") - } - if posts.PrevPostId != post3.Id { - t.Fatal("should match PrevPostId") - } + require.Equal(t, 1, len(posts.Posts), "too many posts returned") + require.Equal(t, post4.Id, posts.Order[0], "should match returned post") + require.Equal(t, post5.Id, posts.NextPostId, "should match NextPostId") + require.Equal(t, post3.Id, posts.PrevPostId, "should match PrevPostId") posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, "junk", 1, 1, "") CheckBadRequestStatus(t, resp) posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, post1.Id, 0, 3, "") CheckNoError(t, resp) - - if len(posts.Posts) != 3 { - t.Fatal("should match length of posts returned") - } - if posts.Order[0] != post4.Id { - t.Fatal("should match returned post") - } - if posts.Order[2] != post2.Id { - t.Fatal("should match returned post") - } - if posts.NextPostId != post5.Id { - t.Fatal("should match NextPostId") - } - if posts.PrevPostId != post1.Id { - t.Fatal("should match PrevPostId") - } + require.Equal(t, 3, len(posts.Posts), "should match length of posts returned") + require.Equal(t, post4.Id, posts.Order[0], "should match returned post") + require.Equal(t, post2.Id, posts.Order[2], "should match returned post") + require.Equal(t, post5.Id, posts.NextPostId, "should match NextPostId") + require.Equal(t, post1.Id, posts.PrevPostId, "should match PrevPostId") posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, post1.Id, 1, 3, "") CheckNoError(t, resp) - - if len(posts.Posts) != 1 { - t.Fatal("should match length of posts returned") - } - if posts.Order[0] != post5.Id { - t.Fatal("should match returned post") - } - if posts.NextPostId != "" { - t.Fatal("should match NextPostId") - } - if posts.PrevPostId != post4.Id { - t.Fatal("should match PrevPostId") - } + require.Equal(t, 1, len(posts.Posts), "should match length of posts returned") + require.Equal(t, post5.Id, posts.Order[0], "should match returned post") + require.Equal(t, "", posts.NextPostId, "should match NextPostId") + require.Equal(t, post4.Id, posts.PrevPostId, "should match PrevPostId") // more tests for next_post_id, prev_post_id, and order // There are 12 posts composed of first 2 system messages and 10 created posts @@ -1735,94 +1420,60 @@ func TestGetPostsAfter(t *testing.T) { // similar to '/posts?after=post2' posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, post2.Id, 0, 60, "") CheckNoError(t, resp) - if len(posts.Order) != 8 || posts.Order[0] != post10.Id || posts.Order[7] != post3.Id { - t.Fatal("should return 8 posts and match order") - } - if posts.NextPostId != "" { - t.Fatal("should return an empty NextPostId") - } - if posts.PrevPostId != post2.Id { - t.Fatal("should return post2.Id as PrevPostId") - } + require.Equal(t, 8, len(posts.Order), "expected 8 posts") + require.Equal(t, post10.Id, posts.Order[0], "should match order") + require.Equal(t, post3.Id, posts.Order[7], "should match order") + require.Equal(t, "", posts.NextPostId, "should return an empty NextPostId") + require.Equal(t, post2.Id, posts.PrevPostId, "should return post2.Id as PrevPostId") // similar to '/posts?after=post2&per_page=3' posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, post2.Id, 0, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 3 || posts.Order[0] != post5.Id || posts.Order[2] != post3.Id { - t.Fatal("should return 3 posts and match order") - } - if posts.NextPostId != post6.Id { - t.Fatal("should return post6.Id as NextPostId") - } - if posts.PrevPostId != post2.Id { - t.Fatal("should return post2.Id as PrevPostId") - } + require.Equal(t, 3, len(posts.Order), "expected 3 posts") + require.Equal(t, post5.Id, posts.Order[0], "should match order") + require.Equal(t, post3.Id, posts.Order[2], "should return 3 posts and match order") + require.Equal(t, post6.Id, posts.NextPostId, "should return post6.Id as NextPostId") + require.Equal(t, post2.Id, posts.PrevPostId, "should return post2.Id as PrevPostId") // similar to '/posts?after=post2&per_page=3&page=1' posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, post2.Id, 1, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 3 || posts.Order[0] != post8.Id || posts.Order[2] != post6.Id { - t.Fatal("should return 3 posts and match order") - } - if posts.NextPostId != post9.Id { - t.Fatal("should return post9.Id as NextPostId") - } - if posts.PrevPostId != post5.Id { - t.Fatal("should return post5.Id as PrevPostId") - } + require.Equal(t, 3, len(posts.Order), "expected 3 posts") + require.Equal(t, post8.Id, posts.Order[0], "should match order") + require.Equal(t, post6.Id, posts.Order[2], "should match order") + require.Equal(t, post9.Id, posts.NextPostId, "should return post9.Id as NextPostId") + require.Equal(t, post5.Id, posts.PrevPostId, "should return post5.Id as PrevPostId") // similar to '/posts?after=post2&per_page=3&page=2' posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, post2.Id, 2, 3, "") CheckNoError(t, resp) - if len(posts.Order) != 2 || posts.Order[0] != post10.Id || posts.Order[1] != post9.Id { - t.Fatal("should return 2 posts and match order") - } - if posts.NextPostId != "" { - t.Fatal("should return an empty NextPostId") - } - if posts.PrevPostId != post8.Id { - t.Fatal("should return post8.Id as PrevPostId") - } + require.Equal(t, 2, len(posts.Order), "expected 2 posts") + require.Equal(t, post10.Id, posts.Order[0], "should match order") + require.Equal(t, post9.Id, posts.Order[1], "should match order") + require.Equal(t, "", posts.NextPostId, "should return an empty NextPostId") + require.Equal(t, post8.Id, posts.PrevPostId, "should return post8.Id as PrevPostId") // similar to '/posts?after=post10' posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, post10.Id, 0, 60, "") CheckNoError(t, resp) - if len(posts.Order) != 0 { - t.Fatal("should return 0 post") - } - if posts.NextPostId != "" { - t.Fatal("should return an empty NextPostId") - } - if posts.PrevPostId != post10.Id { - t.Fatal("should return post10.Id as PrevPostId") - } + require.Equal(t, 0, len(posts.Order), "should return 0 post") + require.Equal(t, "", posts.NextPostId, "should return an empty NextPostId") + require.Equal(t, post10.Id, posts.PrevPostId, "should return post10.Id as PrevPostId") // similar to '/posts?after=post10&page=1' posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, post10.Id, 1, 60, "") CheckNoError(t, resp) - if len(posts.Order) != 0 { - t.Fatal("should return 0 post") - } - if posts.NextPostId != "" { - t.Fatal("should return an empty NextPostId") - } - if posts.PrevPostId != "" { - t.Fatal("should return an empty PrevPostId") - } + require.Equal(t, 0, len(posts.Order), "should return 0 post") + require.Equal(t, "", posts.NextPostId, "should return an empty NextPostId") + require.Equal(t, "", posts.PrevPostId, "should return an empty PrevPostId") // similar to '/posts?after=non-existent-post' nonExistentPostId := model.NewId() posts, resp = Client.GetPostsAfter(th.BasicChannel.Id, nonExistentPostId, 0, 60, "") CheckNoError(t, resp) - if len(posts.Order) != 0 { - t.Fatal("should return 0 post") - } - if posts.NextPostId != "" { - t.Fatal("should return an empty NextPostId") - } - if posts.PrevPostId != nonExistentPostId { - t.Fatal("should return nonExistentPostId as PrevPostId") - } + require.Equal(t, 0, len(posts.Order), "should return 0 post") + require.Equal(t, "", posts.NextPostId, "should return an empty NextPostId") + require.Equal(t, nonExistentPostId, posts.PrevPostId, "should return nonExistentPostId as PrevPostId") } func TestGetPostsForChannelAroundLastUnread(t *testing.T) { @@ -2080,9 +1731,7 @@ func TestGetPost(t *testing.T) { post, resp := Client.GetPost(th.BasicPost.Id, "") CheckNoError(t, resp) - if post.Id != th.BasicPost.Id { - t.Fatal("post ids don't match") - } + require.Equal(t, th.BasicPost.Id, post.Id, "post ids don't match") post, resp = Client.GetPost(th.BasicPost.Id, resp.Etag) CheckEtag(t, post, resp) @@ -2153,9 +1802,7 @@ func TestDeletePost(t *testing.T) { CheckUnauthorizedStatus(t, resp) status, resp := th.SystemAdminClient.DeletePost(post.Id) - if !status { - t.Fatal("post should return status OK") - } + require.True(t, status, "post should return status OK") CheckNoError(t, resp) } @@ -2173,18 +1820,13 @@ func TestGetPostThread(t *testing.T) { var list2 *model.PostList list2, resp = Client.GetPostThread(th.BasicPost.Id, resp.Etag) CheckEtag(t, list2, resp) + require.Equal(t, th.BasicPost.Id, list.Order[0], "wrong order") - if list.Order[0] != th.BasicPost.Id { - t.Fatal("wrong order") - } + _, ok := list.Posts[th.BasicPost.Id] + require.True(t, ok, "should have had post") - if _, ok := list.Posts[th.BasicPost.Id]; !ok { - t.Fatal("should have had post") - } - - if _, ok := list.Posts[post.Id]; !ok { - t.Fatal("should have had post") - } + _, ok = list.Posts[post.Id] + require.True(t, ok, "should have had post") _, resp = Client.GetPostThread("junk", "") CheckBadRequestStatus(t, resp) @@ -2259,9 +1901,7 @@ func TestSearchPosts(t *testing.T) { } posts, resp := Client.SearchPostsWithParams(th.BasicTeam.Id, &searchParams) CheckNoError(t, resp) - if len(posts.Order) != 3 { - t.Fatal("wrong search") - } + require.Len(t, posts.Order, 3, "wrong search") terms = "search" page := 0 @@ -2275,9 +1915,8 @@ func TestSearchPosts(t *testing.T) { } posts2, resp := Client.SearchPostsWithParams(th.BasicTeam.Id, &searchParams) CheckNoError(t, resp) - if len(posts2.Order) != 3 { // We don't support paging for DB search yet, modify this when we do. - t.Fatal("Wrong number of posts", len(posts2.Order)) - } + // We don't support paging for DB search yet, modify this when we do. + require.Len(t, posts2.Order, 3, "Wrong number of posts") assert.Equal(t, posts.Order[0], posts2.Order[0]) assert.Equal(t, posts.Order[1], posts2.Order[1]) @@ -2291,27 +1930,22 @@ func TestSearchPosts(t *testing.T) { } posts2, resp = Client.SearchPostsWithParams(th.BasicTeam.Id, &searchParams) CheckNoError(t, resp) - if len(posts2.Order) != 0 { // We don't support paging for DB search yet, modify this when we do. - t.Fatal("Wrong number of posts", len(posts2.Order)) - } + // We don't support paging for DB search yet, modify this when we do. + require.Len(t, posts2.Order, 0, "Wrong number of posts") posts, resp = Client.SearchPosts(th.BasicTeam.Id, "search", false) CheckNoError(t, resp) - if len(posts.Order) != 3 { - t.Fatal("wrong search") - } + require.Len(t, posts.Order, 3, "wrong search") posts, resp = Client.SearchPosts(th.BasicTeam.Id, "post2", false) CheckNoError(t, resp) - if len(posts.Order) != 1 && posts.Order[0] == post2.Id { - t.Fatal("wrong search") - } + require.Len(t, posts.Order, 1, "wrong number of posts") + require.Equal(t, post2.Id, posts.Order[0], "wrong search") posts, resp = Client.SearchPosts(th.BasicTeam.Id, "#hashtag", false) CheckNoError(t, resp) - if len(posts.Order) != 1 && posts.Order[0] == post3.Id { - t.Fatal("wrong search") - } + require.Len(t, posts.Order, 1, "wrong number of posts") + require.Equal(t, post3.Id, posts.Order[0], "wrong search") terms = "#hashtag" includeDeletedChannels := true @@ -2323,9 +1957,7 @@ func TestSearchPosts(t *testing.T) { } posts, resp = Client.SearchPostsWithParams(th.BasicTeam.Id, &searchParams) CheckNoError(t, resp) - if len(posts.Order) != 2 { - t.Fatal("wrong search") - } + require.Len(t, posts.Order, 2, "wrong search") th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.ExperimentalViewArchivedChannels = false @@ -2333,20 +1965,14 @@ func TestSearchPosts(t *testing.T) { posts, resp = Client.SearchPostsWithParams(th.BasicTeam.Id, &searchParams) CheckNoError(t, resp) - if len(posts.Order) != 1 { - t.Fatal("wrong search") - } + require.Len(t, posts.Order, 1, "wrong search") - if posts, _ = Client.SearchPosts(th.BasicTeam.Id, "*", false); len(posts.Order) != 0 { - t.Fatal("searching for just * shouldn't return any results") - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "*", false) + require.Len(t, posts.Order, 0, "searching for just * shouldn't return any results") posts, resp = Client.SearchPosts(th.BasicTeam.Id, "post1 post2", true) CheckNoError(t, resp) - - if len(posts.Order) != 2 { - t.Fatal("wrong search results") - } + require.Len(t, posts.Order, 2, "wrong search results") _, resp = Client.SearchPosts("junk", "#sgtitlereview", false) CheckBadRequestStatus(t, resp) @@ -2379,9 +2005,7 @@ func TestSearchHashtagPosts(t *testing.T) { posts, resp := Client.SearchPosts(th.BasicTeam.Id, "#sgtitlereview", false) CheckNoError(t, resp) - if len(posts.Order) != 2 { - t.Fatal("wrong search results") - } + require.Len(t, posts.Order, 2, "wrong search results") Client.Logout() _, resp = Client.SearchPosts(th.BasicTeam.Id, "#sgtitlereview", false) @@ -2408,50 +2032,38 @@ func TestSearchPostsInChannel(t *testing.T) { message = "other message with no return" _ = th.CreateMessagePostWithClient(Client, channel, message) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "channel:", false); len(posts.Order) != 0 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ := Client.SearchPosts(th.BasicTeam.Id, "channel:", false) + require.Len(t, posts.Order, 0, "wrong number of posts for search 'channel:'") - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "in:", false); len(posts.Order) != 0 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "in:", false) + require.Len(t, posts.Order, 0, "wrong number of posts for search 'in:'") - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "channel:"+th.BasicChannel.Name, false); len(posts.Order) != 2 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "channel:"+th.BasicChannel.Name, false) + require.Lenf(t, posts.Order, 2, "wrong number of posts returned for search 'channel:%v'", th.BasicChannel.Name) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "in:"+th.BasicChannel2.Name, false); len(posts.Order) != 2 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "in:"+th.BasicChannel2.Name, false) + require.Lenf(t, posts.Order, 2, "wrong number of posts returned for search 'in:%v'", th.BasicChannel2.Name) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "channel:"+th.BasicChannel2.Name, false); len(posts.Order) != 2 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "channel:"+th.BasicChannel2.Name, false) + require.Lenf(t, posts.Order, 2, "wrong number of posts for search 'channel:%v'", th.BasicChannel2.Name) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "ChAnNeL:"+th.BasicChannel2.Name, false); len(posts.Order) != 2 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "ChAnNeL:"+th.BasicChannel2.Name, false) + require.Lenf(t, posts.Order, 2, "wrong number of posts for search 'ChAnNeL:%v'", th.BasicChannel2.Name) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "sgtitlereview", false); len(posts.Order) != 2 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "sgtitlereview", false) + require.Lenf(t, posts.Order, 2, "wrong number of posts for search 'sgtitlereview'") - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "sgtitlereview channel:"+th.BasicChannel.Name, false); len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "sgtitlereview channel:"+th.BasicChannel.Name, false) + require.Lenf(t, posts.Order, 1, "wrong number of posts for search 'sgtitlereview channel:%v'", th.BasicChannel.Name) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "sgtitlereview in: "+th.BasicChannel2.Name, false); len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "sgtitlereview in: "+th.BasicChannel2.Name, false) + require.Lenf(t, posts.Order, 1, "wrong number of posts for search 'sgtitlereview in: %v'", th.BasicChannel2.Name) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "sgtitlereview channel: "+th.BasicChannel2.Name, false); len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } - - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "channel: "+th.BasicChannel2.Name+" channel: "+channel.Name, false); len(posts.Order) != 3 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "sgtitlereview channel: "+th.BasicChannel2.Name, false) + require.Lenf(t, posts.Order, 1, "wrong number of posts for search 'sgtitlereview channel: %v'", th.BasicChannel2.Name) + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "channel: "+th.BasicChannel2.Name+" channel: "+channel.Name, false) + require.Lenf(t, posts.Order, 3, "wrong number of posts for 'channel: %v channel: %v'", th.BasicChannel2.Name, channel.Name) } func TestSearchPostsFromUser(t *testing.T) { @@ -2474,48 +2086,40 @@ func TestSearchPostsFromUser(t *testing.T) { message = "sgtitlereview\n with return" _ = th.CreateMessagePostWithClient(Client, th.BasicChannel2, message) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "from: "+th.TeamAdminUser.Username, false); len(posts.Order) != 2 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ := Client.SearchPosts(th.BasicTeam.Id, "from: "+th.TeamAdminUser.Username, false) + require.Lenf(t, posts.Order, 2, "wrong number of posts for search 'from: %v'", th.TeamAdminUser.Username) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username, false); len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username, false) + require.Lenf(t, posts.Order, 1, "wrong number of posts for search 'from: %v", th.BasicUser2.Username) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username+" sgtitlereview", false); len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username+" sgtitlereview", false) + require.Lenf(t, posts.Order, 1, "wrong number of posts for search 'from: %v'", th.BasicUser2.Username) message = "hullo" _ = th.CreateMessagePost(message) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username+" in:"+th.BasicChannel.Name, false); len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username+" in:"+th.BasicChannel.Name, false) + require.Len(t, posts.Order, 1, "wrong number of posts for search 'from: %v in:", th.BasicUser2.Username, th.BasicChannel.Name) Client.Login(user.Email, user.Password) // wait for the join/leave messages to be created for user3 since they're done asynchronously time.Sleep(100 * time.Millisecond) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username, false); len(posts.Order) != 2 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username, false) + require.Lenf(t, posts.Order, 2, "wrong number of posts for search 'from: %v'", th.BasicUser2.Username) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username+" from: "+user.Username, false); len(posts.Order) != 2 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username+" from: "+user.Username, false) + require.Lenf(t, posts.Order, 2, "wrong number of posts for search 'from: %v from: %v'", th.BasicUser2.Username, user.Username) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username+" from: "+user.Username+" in:"+th.BasicChannel2.Name, false); len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username+" from: "+user.Username+" in:"+th.BasicChannel2.Name, false) + require.Len(t, posts.Order, 1, "wrong number of posts") message = "coconut" _ = th.CreateMessagePostWithClient(Client, th.BasicChannel2, message) - if posts, _ := Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username+" from: "+user.Username+" in:"+th.BasicChannel2.Name+" coconut", false); len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "from: "+th.BasicUser2.Username+" from: "+user.Username+" in:"+th.BasicChannel2.Name+" coconut", false) + require.Len(t, posts.Order, 1, "wrong number of posts") } func TestSearchPostsWithDateFlags(t *testing.T) { @@ -2537,29 +2141,19 @@ func TestSearchPostsWithDateFlags(t *testing.T) { _ = th.CreateMessagePostNoClient(th.BasicChannel, message, utils.MillisFromTime(createDate)) posts, _ := Client.SearchPosts(th.BasicTeam.Id, "return", false) - if len(posts.Order) != 3 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + require.Len(t, posts.Order, 3, "wrong number of posts") posts, _ = Client.SearchPosts(th.BasicTeam.Id, "on:", false) - if len(posts.Order) != 0 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + require.Len(t, posts.Order, 0, "wrong number of posts") posts, _ = Client.SearchPosts(th.BasicTeam.Id, "after:", false) - if len(posts.Order) != 0 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + require.Len(t, posts.Order, 0, "wrong number of posts") posts, _ = Client.SearchPosts(th.BasicTeam.Id, "before:", false) - if len(posts.Order) != 0 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + require.Len(t, posts.Order, 0, "wrong number of posts") posts, _ = Client.SearchPosts(th.BasicTeam.Id, "on:2018-08-01", false) - if len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + require.Len(t, posts.Order, 1, "wrong number of posts") posts, _ = Client.SearchPosts(th.BasicTeam.Id, "after:2018-08-01", false) resultCount := 0 @@ -2568,24 +2162,16 @@ func TestSearchPostsWithDateFlags(t *testing.T) { resultCount = resultCount + 1 } } - if resultCount != 2 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + require.Equal(t, 2, resultCount, "wrong number of posts") posts, _ = Client.SearchPosts(th.BasicTeam.Id, "before:2018-08-02", false) - if len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + require.Len(t, posts.Order, 1, "wrong number of posts") posts, _ = Client.SearchPosts(th.BasicTeam.Id, "before:2018-08-03 after:2018-08-02", false) - if len(posts.Order) != 0 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + require.Len(t, posts.Order, 0, "wrong number of posts") posts, _ = Client.SearchPosts(th.BasicTeam.Id, "before:2018-08-03 after:2018-08-01", false) - if len(posts.Order) != 1 { - t.Fatalf("wrong number of posts returned %v", len(posts.Order)) - } + require.Len(t, posts.Order, 1, "wrong number of posts") } func TestGetFileInfosForPost(t *testing.T) { @@ -2594,13 +2180,11 @@ func TestGetFileInfosForPost(t *testing.T) { Client := th.Client fileIds := make([]string, 3) - if data, err := testutils.ReadTestFile("test.png"); err != nil { - t.Fatal(err) - } else { - for i := 0; i < 3; i++ { - fileResp, _ := Client.UploadFile(data, th.BasicChannel.Id, "test.png") - fileIds[i] = fileResp.FileInfos[0].Id - } + data, err := testutils.ReadTestFile("test.png") + require.NoError(t, err) + for i := 0; i < 3; i++ { + fileResp, _ := Client.UploadFile(data, th.BasicChannel.Id, "test.png") + fileIds[i] = fileResp.FileInfos[0].Id } post := &model.Post{ChannelId: th.BasicChannel.Id, Message: "zz" + model.NewId() + "a", FileIds: fileIds} @@ -2609,9 +2193,7 @@ func TestGetFileInfosForPost(t *testing.T) { infos, resp := Client.GetFileInfosForPost(post.Id, "") CheckNoError(t, resp) - if len(infos) != 3 { - t.Fatal("missing file infos") - } + require.Len(t, infos, 3, "missing file infos") found := false for _, info := range infos { @@ -2620,9 +2202,7 @@ func TestGetFileInfosForPost(t *testing.T) { } } - if !found { - t.Fatal("missing file info") - } + require.True(t, found, "missing file info") infos, resp = Client.GetFileInfosForPost(post.Id, resp.Etag) CheckEtag(t, infos, resp) @@ -2630,9 +2210,7 @@ func TestGetFileInfosForPost(t *testing.T) { infos, resp = Client.GetFileInfosForPost(th.BasicPost.Id, "") CheckNoError(t, resp) - if len(infos) != 0 { - t.Fatal("should have no file infos") - } + require.Len(t, infos, 0, "should have no file infos") _, resp = Client.GetFileInfosForPost("junk", "") CheckBadRequestStatus(t, resp)