Adjust tests timouts to work on machine with HDD (#516)

* increase timeout for TestServerAuthHooks http client

* replace assert.Equal checks for slice length with require.Equal

* unify channel name across tests

* fix panic in Test_Main

* increase TestRest_CreateWithPictures timeout for HDD slowness

* increase TestService_VoteSameIPWithDuration timeout for HDD slowness

* increase go test timeout for HDD run

* increase TestRest_CreateWithPictures timeout for HDD slowness
This commit is contained in:
Dmitry Verkhoturov
2020-01-01 14:46:39 -06:00
committed by Umputun
parent 25782d7d3e
commit 6f9c87850a
15 changed files with 97 additions and 91 deletions
+1 -1
View File
@@ -20,7 +20,7 @@ ENV GOFLAGS="-mod=vendor"
RUN \
cd app && \
if [ -z "$SKIP_BACKEND_TEST" ] ; then \
go test -p 1 -timeout="${BACKEND_TEST_TIMEOUT:-30s}" -covermode=count -coverprofile=/profile.cov_tmp ./... && \
go test -p 1 -timeout="${BACKEND_TEST_TIMEOUT:-300s}" -covermode=count -coverprofile=/profile.cov_tmp ./... && \
cat /profile.cov_tmp | grep -v "_mock.go" > /profile.cov ; \
golangci-lint run --out-format=tab --disable-all --tests=false --enable=unconvert \
--enable=megacheck --enable=structcheck --enable=gas --enable=gocyclo --enable=dupl --enable=misspell \
+3 -3
View File
@@ -75,7 +75,7 @@ func TestServerApp_DevMode(t *testing.T) {
go func() { _ = app.run(ctx) }()
waitForHTTPServerStart(port)
assert.Equal(t, 5+1, len(app.restSrv.Authenticator.Providers()), "extra auth provider")
require.Equal(t, 5+1, len(app.restSrv.Authenticator.Providers()), "extra auth provider")
assert.Equal(t, "dev", app.restSrv.Authenticator.Providers()[4].Name(), "dev auth provider")
// send ping
resp, err := http.Get(fmt.Sprintf("http://localhost:%d/api/v1/ping", port))
@@ -101,7 +101,7 @@ func TestServerApp_AnonMode(t *testing.T) {
go func() { _ = app.run(ctx) }()
waitForHTTPServerStart(port)
assert.Equal(t, 5+1, len(app.restSrv.Authenticator.Providers()), "extra auth provider for anon")
require.Equal(t, 5+1, len(app.restSrv.Authenticator.Providers()), "extra auth provider for anon")
assert.Equal(t, "anonymous", app.restSrv.Authenticator.Providers()[5].Name(), "anon auth provider")
// send ping
@@ -382,7 +382,7 @@ func TestServerAuthHooks(t *testing.T) {
t.Log(tk)
// add comment
client := http.Client{Timeout: 2 * time.Second}
client := http.Client{Timeout: 10 * time.Second}
req, err := http.NewRequest("POST", fmt.Sprintf("http://localhost:%d/api/v1/comment", port),
strings.NewReader(`{"text": "test 123", "locator":{"url": "https://radio-t.com/p/2018/12/29/podcast-630/", "site": "remark"}}`))
require.NoError(t, err)
+6 -3
View File
@@ -41,6 +41,12 @@ func Test_Main(t *testing.T) {
close(finished)
}()
// defer cleanup because require check below can fail
defer func() {
close(done)
<-finished
}()
waitForHTTPServerStart(port)
resp, err := http.Get(fmt.Sprintf("http://localhost:%d/api/v1/ping", port))
require.NoError(t, err)
@@ -49,9 +55,6 @@ func Test_Main(t *testing.T) {
body, err := ioutil.ReadAll(resp.Body)
assert.NoError(t, err)
assert.Equal(t, "pong", string(body))
close(done)
<-finished
}
func TestGetDump(t *testing.T) {
+2 -1
View File
@@ -10,6 +10,7 @@ import (
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestBackup_RemoveOldBackupFiles(t *testing.T) {
@@ -31,7 +32,7 @@ func TestBackup_RemoveOldBackupFiles(t *testing.T) {
bk.removeOldBackupFiles()
ff, err := ioutil.ReadDir(loc)
assert.NoError(t, err)
assert.Equal(t, 4, len(ff), "should keep 4 files - 3 kept for sit1, and one for site2")
require.Equal(t, 4, len(ff), "should keep 4 files - 3 kept for sit1, and one for site2")
assert.Equal(t, "backup-site1-20171208.gz", ff[0].Name())
assert.Equal(t, "backup-site1-20171209.gz", ff[1].Name())
assert.Equal(t, "backup-site1-20171210.gz", ff[2].Name())
+2 -2
View File
@@ -29,7 +29,7 @@ func TestDisqus_Import(t *testing.T) {
last, err := dataStore.Last("test", 10, time.Time{}, adminUser)
assert.NoError(t, err)
assert.Equal(t, 4, len(last), "4 comments imported")
require.Equal(t, 4, len(last), "4 comments imported")
c := last[len(last)-1] // last reverses, get first one
assert.True(t, strings.HasPrefix(c.Text, "<p>The quick brown fox"))
@@ -57,7 +57,7 @@ func TestDisqus_Convert(t *testing.T) {
for comment := range ch {
res = append(res, comment)
}
assert.Equal(t, 4, len(res), "4 comments total, 1 spam excluded, 1 bad excluded")
require.Equal(t, 4, len(res), "4 comments total, 1 spam excluded, 1 bad excluded")
exp0 := store.Comment{
ID: "299619020",
+4 -4
View File
@@ -47,7 +47,7 @@ func TestNative_Export(t *testing.T) {
require.NoError(t, dec.Decode(&m), "decode meta")
assert.Equal(t, 2, len(m.Users))
require.Equal(t, 2, len(m.Users))
assert.Equal(t, "user1", m.Users[0].ID)
assert.Equal(t, false, m.Users[0].Blocked.Status)
assert.Equal(t, true, m.Users[0].Verified)
@@ -55,7 +55,7 @@ func TestNative_Export(t *testing.T) {
assert.Equal(t, true, m.Users[1].Blocked.Status)
assert.Equal(t, false, m.Users[1].Verified)
assert.Equal(t, 1, len(m.Posts))
require.Equal(t, 1, len(m.Posts))
assert.Equal(t, "https://radio-t.com", m.Posts[0].URL)
assert.Equal(t, true, m.Posts[0].ReadOnly)
@@ -84,7 +84,7 @@ func TestNative_Import(t *testing.T) {
comments, err := b.Last("radio-t", 10, time.Time{}, store.User{})
assert.NoError(t, err)
assert.Equal(t, 2, len(comments))
require.Equal(t, 2, len(comments))
assert.Equal(t, "f863bd79-fec6-4a75-b308-61fe5dd02aa1", comments[0].ID)
assert.Equal(t, "1234", comments[0].ParentID)
assert.Equal(t, false, b.IsReadOnly(comments[0].Locator))
@@ -122,7 +122,7 @@ func TestNative_ImportWithMapper(t *testing.T) {
comments, err := b.Last("radio-t", 10, time.Time{}, store.User{})
assert.NoError(t, err)
assert.Equal(t, 2, len(comments))
require.Equal(t, 2, len(comments))
assert.Equal(t, "f863bd79-fec6-4a75-b308-61fe5dd02aa1", comments[0].ID)
assert.Equal(t, "1234", comments[0].ParentID)
assert.Equal(t, false, b.IsReadOnly(comments[0].Locator))
+5 -4
View File
@@ -8,6 +8,7 @@ import (
bolt "github.com/coreos/bbolt"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/backend/app/store"
"github.com/umputun/remark/backend/app/store/admin"
@@ -30,7 +31,7 @@ func TestWordPress_Import(t *testing.T) {
last, err := dataStore.Last(siteID, 10, time.Time{}, adminUser)
assert.NoError(t, err)
assert.Equal(t, 3, len(last), "3 comments imported")
require.Equal(t, 3, len(last), "3 comments imported")
c := last[0]
assert.Equal(t, "14", c.ID)
@@ -44,7 +45,7 @@ func TestWordPress_Import(t *testing.T) {
posts, err := dataStore.List(siteID, 0, 0)
assert.NoError(t, err)
assert.Equal(t, 1, len(posts))
require.Equal(t, 1, len(posts))
p := posts[0]
assert.Equal(t, "https://realmenweardress.es/2010/07/do-you-rp/", p.URL)
@@ -62,7 +63,7 @@ func TestWordPress_Convert(t *testing.T) {
for c := range ch {
comments = append(comments, c)
}
assert.Equal(t, 3, len(comments), "3 comments exported, 1 excluded")
require.Equal(t, 3, len(comments), "3 comments exported, 1 excluded")
exp1 := store.Comment{
ID: "13",
@@ -89,7 +90,7 @@ func TestWP_Convert_MD(t *testing.T) {
for c := range ch {
comments = append(comments, c)
}
assert.Equal(t, 3, len(comments), "3 comments exported")
require.Equal(t, 3, len(comments), "3 comments exported")
assert.Equal(t, "<p>Row1<br/>\nRow2</p>\n\n<p>Row4</p>\n", comments[0].Text)
+4 -3
View File
@@ -9,6 +9,7 @@ import (
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/umputun/remark/backend/app/store"
)
@@ -36,8 +37,8 @@ func TestService_WithDestinations(t *testing.T) {
time.Sleep(time.Millisecond * 110)
s.Close()
assert.Equal(t, 3, len(d1.Get()), "got all comments to d1")
assert.Equal(t, 3, len(d2.Get()), "got all comments to d2")
require.Equal(t, 3, len(d1.Get()), "got all comments to d1")
require.Equal(t, 3, len(d2.Get()), "got all comments to d2")
assert.Equal(t, "100", d1.Get()[0].Comment.ID)
assert.Equal(t, "101", d1.Get()[1].Comment.ID)
@@ -98,7 +99,7 @@ func TestService_WithParent(t *testing.T) {
s.Close()
destRes := dest.Get()
assert.Equal(t, 2, len(destRes), "two comment notified")
require.Equal(t, 2, len(destRes), "two comment notified")
assert.Equal(t, "p1", destRes[0].Comment.ParentID)
assert.Equal(t, "p1", destRes[0].parent.ID)
assert.Equal(t, "p11", destRes[1].Comment.ParentID)
+7 -7
View File
@@ -183,7 +183,7 @@ func TestAdmin_DeleteUser(t *testing.T) {
cmntWithInfo := commentsWithInfo{}
err = json.Unmarshal([]byte(res), &cmntWithInfo)
assert.NoError(t, err)
assert.Equal(t, 3, len(cmntWithInfo.Comments), "should have 3 comment")
require.Equal(t, 3, len(cmntWithInfo.Comments), "should have 3 comment")
// id1 comment untouched
assert.Equal(t, id1, cmntWithInfo.Comments[0].ID)
@@ -317,7 +317,7 @@ func TestAdmin_Block(t *testing.T) {
comments := commentsWithInfo{}
err = json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 2, len(comments.Comments), "should have 2 comments")
require.Equal(t, 2, len(comments.Comments), "should have 2 comments")
assert.Equal(t, "", comments.Comments[0].Text, "permanent block clear comment")
assert.True(t, comments.Comments[0].Deleted, "permanent block set deleted comment's status")
@@ -339,7 +339,7 @@ func TestAdmin_Block(t *testing.T) {
comments = commentsWithInfo{}
err = json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 4, len(comments.Comments), "should have 4 comments")
require.Equal(t, 4, len(comments.Comments), "should have 4 comments")
assert.Equal(t, "test test #1", comments.Comments[2].Text, "comment not removed and not cleared")
assert.False(t, comments.Comments[2].Deleted, "not deleted")
@@ -351,7 +351,7 @@ func TestAdmin_Block(t *testing.T) {
comments = commentsWithInfo{}
err = json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 4, len(comments.Comments), "should have 4 comments")
require.Equal(t, 4, len(comments.Comments), "should have 4 comments")
assert.Equal(t, "test test #1", comments.Comments[2].Text, "restored")
assert.False(t, comments.Comments[2].Deleted)
@@ -398,7 +398,7 @@ func TestAdmin_BlockedList(t *testing.T) {
users := []store.BlockedUser{}
err = json.NewDecoder(res.Body).Decode(&users)
assert.NoError(t, err)
assert.Equal(t, 2, len(users), "two users blocked")
require.Equal(t, 2, len(users), "two users blocked")
assert.Equal(t, "user1", users[0].ID)
assert.Equal(t, "user1 name", users[0].Name)
assert.Equal(t, "user2", users[1].ID)
@@ -578,7 +578,7 @@ func TestAdmin_Verify(t *testing.T) {
comments := commentsWithInfo{}
err = json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 2, len(comments.Comments), "should have 2 comments")
require.Equal(t, 2, len(comments.Comments), "should have 2 comments")
assert.Equal(t, "test test #1", comments.Comments[0].Text)
assert.True(t, comments.Comments[0].User.Verified)
@@ -596,7 +596,7 @@ func TestAdmin_Verify(t *testing.T) {
comments = commentsWithInfo{}
err = json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 2, len(comments.Comments), "should have 2 comments")
require.Equal(t, 2, len(comments.Comments), "should have 2 comments")
assert.Equal(t, "test test #1", comments.Comments[0].Text)
assert.False(t, comments.Comments[0].User.Verified)
}
+2 -2
View File
@@ -892,7 +892,7 @@ func TestRest_CreateWithPictures(t *testing.T) {
Location: "/tmp/remark42/images",
MaxSize: 2000,
}
imageService.TTL = 50 * time.Millisecond
imageService.TTL = 100 * time.Millisecond
svc.privRest.imageService = imageService
svc.ImageService = imageService
@@ -948,7 +948,7 @@ func TestRest_CreateWithPictures(t *testing.T) {
assert.Error(t, err, "picture %d not moved from staging yet", i)
}
time.Sleep(500 * time.Millisecond)
time.Sleep(1500 * time.Millisecond)
for i := range ids {
_, err = os.Stat("/tmp/remark42/images/" + ids[i])
+8 -8
View File
@@ -99,7 +99,7 @@ func TestRest_Find(t *testing.T) {
comments = commentsWithInfo{}
err = json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 2, len(comments.Comments), "should have 2 comments")
require.Equal(t, 2, len(comments.Comments), "should have 2 comments")
assert.Equal(t, id1, comments.Comments[0].ID)
assert.Equal(t, id2, comments.Comments[1].ID)
assert.Equal(t, "<p>test test #1</p>\n", comments.Comments[0].Text)
@@ -114,7 +114,7 @@ func TestRest_Find(t *testing.T) {
assert.Equal(t, 200, code)
err = json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 2, len(comments.Comments), "should have 2 comments")
require.Equal(t, 2, len(comments.Comments), "should have 2 comments")
assert.Equal(t, id1, comments.Comments[1].ID)
assert.Equal(t, id2, comments.Comments[0].ID)
@@ -124,7 +124,7 @@ func TestRest_Find(t *testing.T) {
assert.Equal(t, 200, code)
err = json.Unmarshal([]byte(res), &tree)
assert.NoError(t, err)
assert.Equal(t, 1, len(tree.Nodes))
require.Equal(t, 1, len(tree.Nodes))
assert.Equal(t, 1, len(tree.Nodes[0].Replies))
assert.Equal(t, 2, tree.Info.Count)
assert.Equal(t, "https://radio-t.com/blah1", tree.Info.URL)
@@ -230,7 +230,7 @@ func TestRest_FindUserView(t *testing.T) {
comments = commentsWithInfo{}
err = json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 2, len(comments.Comments), "should have 2 comments")
require.Equal(t, 2, len(comments.Comments), "should have 2 comments")
assert.Equal(t, id1, comments.Comments[0].ID)
assert.Equal(t, id2, comments.Comments[1].ID)
assert.Equal(t, "dev", comments.Comments[0].User.ID)
@@ -265,7 +265,7 @@ func TestRest_Last(t *testing.T) {
comments := []store.Comment{}
err := json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 2, len(comments), "should have 2 comments")
require.Equal(t, 2, len(comments), "should have 2 comments")
assert.Equal(t, id1, comments[1].ID)
assert.Equal(t, id2, comments[0].ID)
@@ -274,7 +274,7 @@ func TestRest_Last(t *testing.T) {
comments = []store.Comment{}
err = json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 2, len(comments), "should have 2 comments")
require.Equal(t, 2, len(comments), "should have 2 comments")
assert.Equal(t, id1, comments[1].ID)
assert.Equal(t, id2, comments[0].ID)
@@ -283,7 +283,7 @@ func TestRest_Last(t *testing.T) {
comments = []store.Comment{}
err = json.Unmarshal([]byte(res), &comments)
assert.NoError(t, err)
assert.Equal(t, 1, len(comments), "should have 1 comments")
require.Equal(t, 1, len(comments), "should have 1 comments")
assert.Equal(t, id2, comments[0].ID)
res, code = get(t, ts.URL+"/api/v1/last/5?site=remark42")
@@ -343,7 +343,7 @@ func TestRest_FindUserComments(t *testing.T) {
err = json.Unmarshal([]byte(res), &resp)
assert.NoError(t, err)
assert.Equal(t, 3, len(resp.Comments), "should have 3 comments")
require.Equal(t, 3, len(resp.Comments), "should have 3 comments")
assert.Equal(t, 4, resp.Count, "should have 3 count")
// user comment sorted with -time
+3 -3
View File
@@ -81,20 +81,20 @@ func TestRest_GetStarted(t *testing.T) {
func TestRest_Shutdown(t *testing.T) {
srv := Rest{Authenticator: &auth.Service{}, ImageProxy: &proxy.Image{}}
finished := make(chan bool)
done := make(chan bool)
// without waiting for channel close at the end goroutine will stay alive after test finish
// which would create data race with next test
go func() {
time.Sleep(200 * time.Millisecond)
srv.Shutdown()
close(finished)
close(done)
}()
st := time.Now()
srv.Run(0)
assert.True(t, time.Since(st).Seconds() < 1, "should take about 100ms")
<-finished
<-done
}
func TestRest_filterComments(t *testing.T) {
+22 -22
View File
@@ -25,7 +25,7 @@ func TestBoltDB_CreateAndFind(t *testing.T) {
req := FindRequest{Locator: store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, Sort: "time"}
res, err := b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Equal(t, `some text, <a href="http://radio-t.com">link</a>`, res[0].Text)
assert.Equal(t, "user1", res[0].User.ID)
t.Log(res[0].ID)
@@ -98,7 +98,7 @@ func TestBoltDB_Update(t *testing.T) {
req := FindRequest{Locator: store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, Sort: "time"}
res, err := b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 2, len(res), "2 records initially")
require.Equal(t, 2, len(res), "2 records initially")
comment := res[0]
comment.Text = "abc 123"
@@ -129,13 +129,13 @@ func TestBoltDB_FindLast(t *testing.T) {
req := FindRequest{Locator: store.Locator{SiteID: "radio-t"}, Sort: "-time"}
res, err := b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Equal(t, "some text2", res[0].Text)
req.Limit = 1
res, err = b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 1, len(res))
require.Equal(t, 1, len(res))
assert.Equal(t, "some text2", res[0].Text)
req.Locator.SiteID = "bad"
@@ -151,13 +151,13 @@ func TestBoltDB_FindLastSince(t *testing.T) {
req := FindRequest{Locator: store.Locator{SiteID: "radio-t"}, Sort: "-time", Since: ts}
res, err := b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Equal(t, "some text2", res[0].Text)
req.Since = time.Date(2017, 12, 20, 15, 18, 22, 0, time.Local)
res, err = b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 1, len(res))
require.Equal(t, 1, len(res))
assert.Equal(t, "some text2", res[0].Text)
req.Since = time.Date(2017, 12, 20, 16, 18, 22, 0, time.Local)
@@ -174,13 +174,13 @@ func TestBoltDB_FindInPostSince(t *testing.T) {
req := FindRequest{Locator: store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, Sort: "-time", Since: ts}
res, err := b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Equal(t, "some text2", res[0].Text)
req.Since = time.Date(2017, 12, 20, 15, 18, 22, 0, time.Local)
res, err = b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 1, len(res))
require.Equal(t, 1, len(res))
assert.Equal(t, "some text2", res[0].Text)
req.Since = time.Date(2017, 12, 20, 16, 18, 22, 0, time.Local)
@@ -196,19 +196,19 @@ func TestBoltDB_FindForUser(t *testing.T) {
req := FindRequest{Locator: store.Locator{SiteID: "radio-t"}, Sort: "-time", UserID: "user1", Limit: 5}
res, err := b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Equal(t, "some text2", res[0].Text, "sorted by -time")
req = FindRequest{Locator: store.Locator{SiteID: "radio-t"}, Sort: "-time", UserID: "user1", Limit: 1}
res, err = b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 1, len(res), "allow 1 comment")
require.Equal(t, 1, len(res), "allow 1 comment")
assert.Equal(t, "some text2", res[0].Text, "sorted by -time")
req = FindRequest{Locator: store.Locator{SiteID: "radio-t"}, Sort: "-time", UserID: "user1", Limit: 1, Skip: 1}
res, err = b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 1, len(res), "allow 1 comment")
require.Equal(t, 1, len(res), "allow 1 comment")
assert.Equal(t, `some text, <a href="http://radio-t.com">link</a>`, res[0].Text, "second comment")
req = FindRequest{Locator: store.Locator{SiteID: "bad"}, Sort: "-time", UserID: "user1", Limit: 1, Skip: 1}
@@ -255,7 +255,7 @@ func TestBoltDB_FindForUserPagination(t *testing.T) {
req.Limit = 5
res, err = b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 5, len(res))
require.Equal(t, 5, len(res))
assert.Equal(t, "id-199", res[0].ID)
assert.Equal(t, "id-195", res[4].ID)
@@ -263,7 +263,7 @@ func TestBoltDB_FindForUserPagination(t *testing.T) {
req.Skip, req.Limit = 10, 3
res, err = b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 3, len(res))
require.Equal(t, 3, len(res))
assert.Equal(t, "id-189", res[0].ID)
assert.Equal(t, "id-187", res[2].ID)
@@ -271,7 +271,7 @@ func TestBoltDB_FindForUserPagination(t *testing.T) {
req.Skip, req.Limit = 195, 10
res, err = b.Find(req)
assert.NoError(t, err)
assert.Equal(t, 5, len(res))
require.Equal(t, 5, len(res))
assert.Equal(t, "id-4", res[0].ID)
assert.Equal(t, "id-0", res[4].ID)
@@ -602,7 +602,7 @@ func TestBolt_FlagListBlocked(t *testing.T) {
assert.NoError(t, err)
blockedList := toBlocked(vv)
assert.Equal(t, 2, len(blockedList))
require.Equal(t, 2, len(blockedList))
assert.Equal(t, "user1", blockedList[0].ID)
assert.Equal(t, "user2", blockedList[1].ID)
t.Logf("%+v", blockedList)
@@ -612,7 +612,7 @@ func TestBolt_FlagListBlocked(t *testing.T) {
vv, err = b.ListFlags(FlagRequest{Flag: Blocked, Locator: store.Locator{SiteID: "radio-t"}})
assert.NoError(t, err)
blockedList = toBlocked(vv)
assert.Equal(t, 1, len(blockedList))
require.Equal(t, 1, len(blockedList))
assert.Equal(t, "user1", blockedList[0].ID)
_, err = b.ListFlags(FlagRequest{Flag: Blocked, Locator: store.Locator{SiteID: "bad"}})
@@ -689,7 +689,7 @@ func TestBolt_DeleteComment(t *testing.T) {
res, err = b.Find(reqReq)
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Equal(t, "", res[0].Text)
assert.True(t, res[0].Deleted, "marked deleted")
assert.Equal(t, store.User{Name: "user name", ID: "user1", Picture: "", Admin: false, Blocked: false, IP: ""}, res[0].User)
@@ -727,7 +727,7 @@ func TestBolt_DeleteHard(t *testing.T) {
reqReq := FindRequest{Locator: store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, Sort: "time"}
res, err := b.Find(reqReq)
assert.NoError(t, err)
assert.Equal(t, 2, len(res), "initially 2 comments")
require.Equal(t, 2, len(res), "initially 2 comments")
delReq := DeleteRequest{Locator: store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"},
CommentID: res[0].ID, DeleteMode: store.HardDelete}
@@ -736,7 +736,7 @@ func TestBolt_DeleteHard(t *testing.T) {
res, err = b.Find(reqReq)
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Equal(t, "", res[0].Text)
assert.True(t, res[0].Deleted, "marked deleted")
assert.Equal(t, store.User{Name: "deleted", ID: "deleted", Picture: "", Admin: false, Blocked: false, IP: ""}, res[0].User)
@@ -812,7 +812,7 @@ func TestBoltAdmin_DeleteUserHard(t *testing.T) {
comments, err := b.Find(FindRequest{Locator: store.Locator{SiteID: "radio-t", URL: "https://radio-t.com"}, Sort: "time"})
assert.NoError(t, err)
assert.Equal(t, 2, len(comments), "2 comments with deleted info")
require.Equal(t, 2, len(comments), "2 comments with deleted info")
assert.Equal(t, store.User{Name: "deleted", ID: "deleted", Picture: "", Admin: false, Blocked: false, IP: ""}, comments[0].User)
assert.Equal(t, store.User{Name: "deleted", ID: "deleted", Picture: "", Admin: false, Blocked: false, IP: ""}, comments[1].User)
@@ -841,7 +841,7 @@ func TestBoltAdmin_DeleteUserSoft(t *testing.T) {
comments, err := b.Find(FindRequest{Locator: store.Locator{SiteID: "radio-t", URL: "https://radio-t.com"}, Sort: "time"})
assert.NoError(t, err)
assert.Equal(t, 2, len(comments), "2 comments with deleted info")
require.Equal(t, 2, len(comments), "2 comments with deleted info")
assert.Equal(t, store.User{Name: "user name", ID: "user1", Picture: "", Admin: false, Blocked: false, IP: ""}, comments[0].User)
assert.Equal(t, store.User{Name: "user name", ID: "user1", Picture: "", Admin: false, Blocked: false, IP: ""}, comments[1].User)
@@ -851,7 +851,7 @@ func TestBoltAdmin_DeleteUserSoft(t *testing.T) {
comments, err = b.Find(FindRequest{Locator: store.Locator{SiteID: "radio-t"}, UserID: "user1", Limit: 5})
assert.NoError(t, err, "no comments for user user1 in store")
assert.Equal(t, 2, len(comments), "2 comments with deleted info")
require.Equal(t, 2, len(comments), "2 comments with deleted info")
assert.True(t, comments[0].Deleted)
assert.True(t, comments[1].Deleted)
assert.Equal(t, "", comments[0].Text)
+2 -2
View File
@@ -20,7 +20,7 @@ func TestService_ExtractPictures(t *testing.T) {
<img src="/blah/user2/pic3.png"/> xyz <p>123</p> <img src="/pic3.png"/> <img src="https://i.ibb.co/0cqqqnD/ezgif-5-3b07b6b97610.png" alt="">`
ids, err := svc.ExtractPictures(html)
require.NoError(t, err)
assert.Equal(t, 2, len(ids), "two images")
require.Equal(t, 2, len(ids), "two images")
assert.Equal(t, "user1/pic1.png", ids[0])
assert.Equal(t, "user2/pic3.png", ids[1])
}
@@ -31,7 +31,7 @@ func TestService_ExtractPictures2(t *testing.T) {
"</p>\n\n<p>Пакеты в го это средство организации кода, они могут быть связанны друг с другом в рамках одной библиотеки (модуля). Например одна из моих вот так выглядит на libraries.io:</p>\n\n<p><img src=\"https://remark42.radio-t.com/api/v1/picture/github_ef0f706a79cc24b17bbbb374cd234a691d034128/bjttt8ahajfmrhsula10.png\" alt=\"bjtr0-201906-08110846-i324c.png\"/></p>\n\n<p>По форме все верно, это все packages, но по сути это все одна библиотека организованная таким образом. При ее импорте, например посредством go mod, она выглядит как один модуль, т.е. <code>github.com/go-pkgz/auth v0.5.2</code>.</p>\n"
ids, err := svc.ExtractPictures(html)
require.NoError(t, err)
assert.Equal(t, 1, len(ids), "one image in")
require.Equal(t, 1, len(ids), "one image in")
assert.Equal(t, "github_ef0f706a79cc24b17bbbb374cd234a691d034128/bjttt8ahajfmrhsula10.png", ids[0])
}
+26 -26
View File
@@ -198,7 +198,7 @@ func TestService_Vote(t *testing.T) {
res, err := b.Last("radio-t", 0, time.Time{}, store.User{})
t.Logf("%+v", res[0])
assert.NoError(t, err)
assert.Equal(t, 3, len(res))
require.Equal(t, 3, len(res))
assert.Equal(t, 0, res[0].Score)
assert.Equal(t, 0, res[0].Vote)
assert.Equal(t, map[string]bool(nil), res[0].Votes, "no votes initially")
@@ -254,7 +254,7 @@ func TestService_Vote(t *testing.T) {
res, err = b.Last("radio-t", 0, time.Time{}, store.User{ID: "user1"})
assert.NoError(t, err)
t.Logf("%+v", res[0])
assert.Equal(t, 3, len(res))
require.Equal(t, 3, len(res))
assert.Equal(t, 1, res[0].Score)
assert.Equal(t, 1, res[0].Vote)
assert.Equal(t, 0.0, res[0].Controversy)
@@ -263,7 +263,7 @@ func TestService_Vote(t *testing.T) {
res, err = b.Last("radio-t", 0, time.Time{}, store.User{ID: "user2"})
assert.NoError(t, err)
t.Logf("%+v", res[0])
assert.Equal(t, 3, len(res))
require.Equal(t, 3, len(res))
assert.Equal(t, 1, res[0].Score)
assert.Equal(t, 0, res[0].Vote)
assert.Equal(t, 0.0, res[0].Controversy)
@@ -279,7 +279,7 @@ func TestService_Vote(t *testing.T) {
assert.NoError(t, err, "vote reset")
res, err = b.Last("radio-t", 0, time.Time{}, store.User{})
assert.NoError(t, err)
assert.Equal(t, 3, len(res))
require.Equal(t, 3, len(res))
assert.Equal(t, 0, res[0].Score)
assert.Equal(t, 0, res[0].Vote)
assert.Equal(t, map[string]bool(nil), res[0].Votes, "vote reset ok")
@@ -334,7 +334,7 @@ func TestService_VoteAggressive(t *testing.T) {
res, err := b.Last("radio-t", 0, time.Time{}, store.User{})
require.NoError(t, err)
t.Logf("%+v", res[0])
assert.Equal(t, 3, len(res))
require.Equal(t, 3, len(res))
assert.Equal(t, 0, res[0].Score)
assert.Equal(t, map[string]bool(nil), res[0].Votes, "no votes initially")
@@ -358,7 +358,7 @@ func TestService_VoteAggressive(t *testing.T) {
require.NoError(t, err)
t.Logf("%+v", res[0])
assert.Equal(t, 3, len(res))
require.Equal(t, 3, len(res))
assert.Equal(t, 2, res[0].Score, "add single +1")
assert.Equal(t, 1, res[0].Vote, "user1 voted +1")
assert.Equal(t, 0, len(res[0].Votes), "votes hidden")
@@ -377,7 +377,7 @@ func TestService_VoteAggressive(t *testing.T) {
wg.Wait()
res, err = b.Last("radio-t", 0, time.Time{}, store.User{})
require.NoError(t, err)
assert.Equal(t, 3, len(res))
require.Equal(t, 3, len(res))
t.Logf("%+v %d", res[0], res[0].Score)
assert.True(t, res[0].Score >= 0 && res[0].Score <= 2, "unexpected score %d", res[0].Score)
}
@@ -500,7 +500,7 @@ func TestService_VoteSameIPWithDuration(t *testing.T) {
MaxVotes: -1}
defer b.Close()
b.RestrictSameIPVotes.Enabled = true
b.RestrictSameIPVotes.Duration = 50 * time.Millisecond
b.RestrictSameIPVotes.Duration = 500 * time.Millisecond
c, err := b.Vote(VoteReq{Locator: store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, CommentID: "id-2",
UserID: "user2", UserIP: "123", Val: true})
@@ -517,7 +517,7 @@ func TestService_VoteSameIPWithDuration(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, 2, c.Score, "have 2 score")
time.Sleep(51 * time.Millisecond)
time.Sleep(501 * time.Millisecond)
c, err = b.Vote(VoteReq{Locator: store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, CommentID: "id-2",
UserID: "user3", UserIP: "123", Val: true})
@@ -557,7 +557,7 @@ func TestService_Pin(t *testing.T) {
res, err := b.Last("radio-t", 0, time.Time{}, store.User{})
t.Logf("%+v", res[0])
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Equal(t, false, res[0].Pin)
err = b.SetPin(store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, res[0].ID, true)
@@ -582,7 +582,7 @@ func TestService_EditComment(t *testing.T) {
res, err := b.Last("radio-t", 0, time.Time{}, store.User{})
t.Logf("%+v", res[0])
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Nil(t, res[0].Edit)
comment, err := b.EditComment(store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, res[0].ID,
@@ -610,7 +610,7 @@ func TestService_DeleteComment(t *testing.T) {
res, err := b.Last("radio-t", 0, time.Time{}, store.User{})
t.Logf("%+v", res[0])
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Nil(t, res[0].Edit)
_, err = b.EditComment(store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, res[0].ID, EditRequest{Delete: true})
@@ -631,7 +631,7 @@ func TestService_EditCommentDurationFailed(t *testing.T) {
res, err := b.Last("radio-t", 0, time.Time{}, store.User{})
t.Logf("%+v", res[0])
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Nil(t, res[0].Edit)
time.Sleep(time.Second)
@@ -649,7 +649,7 @@ func TestService_EditCommentReplyFailed(t *testing.T) {
res, err := b.Last("radio-t", 0, time.Time{}, store.User{})
t.Logf("%+v", res[1])
assert.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Nil(t, res[1].Edit)
reply := store.Comment{
@@ -754,7 +754,7 @@ func TestService_GetMetas(t *testing.T) {
um, pm, err = b.Metas("radio-t")
require.NoError(t, err)
assert.Equal(t, 3, len(um))
require.Equal(t, 3, len(um))
assert.Equal(t, "user1", um[0].ID)
assert.Equal(t, true, um[0].Verified)
assert.Equal(t, engine.UserDetailEntry{Email: ""}, um[0].Details)
@@ -765,7 +765,7 @@ func TestService_GetMetas(t *testing.T) {
assert.Equal(t, "user3", um[2].ID)
assert.Equal(t, "test@example.org", um[2].Details.Email)
assert.Equal(t, 1, len(pm))
require.Equal(t, 1, len(pm))
assert.Equal(t, "https://radio-t.com", pm[0].URL)
assert.Equal(t, true, pm[0].ReadOnly)
}
@@ -937,12 +937,12 @@ func TestService_UserReplies(t *testing.T) {
cc, u, err := b.UserReplies("radio-t", "u1", 10, time.Hour)
assert.NoError(t, err)
assert.Equal(t, 3, len(cc), "3 replies to u1")
require.Equal(t, 3, len(cc), "3 replies to u1")
assert.Equal(t, "developer one u1", u)
cc, u, err = b.UserReplies("radio-t", "u1", 10, time.Millisecond*150)
cc, u, err = b.UserReplies("radio-t", "u1", 10, time.Millisecond*199)
assert.NoError(t, err)
assert.Equal(t, 1, len(cc), "1 reply to u1 in last 150ms")
require.Equal(t, 1, len(cc), "1 reply to u1 in last 200ms")
assert.Equal(t, "developer one u1", u)
cc, u, err = b.UserReplies("radio-t", "u2", 10, time.Hour)
@@ -985,7 +985,7 @@ func TestService_Find(t *testing.T) {
// make sure Controversy altered
res, err = b.Find(store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, "-controversy", store.User{})
require.NoError(t, err)
assert.Equal(t, 3, len(res))
require.Equal(t, 3, len(res))
assert.Equal(t, "123456", res[0].ID)
assert.InDelta(t, 1.73, res[0].Controversy, 0.01)
assert.Equal(t, "id-1", res[1].ID)
@@ -1000,13 +1000,13 @@ func TestService_FindSince(t *testing.T) {
res, err := b.FindSince(store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, "time", store.User{}, time.Time{})
require.NoError(t, err)
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.Equal(t, "id-1", res[0].ID)
res, err = b.FindSince(store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, "time", store.User{},
time.Date(2017, 12, 20, 15, 18, 22, 0, time.Local))
require.NoError(t, err)
assert.Equal(t, 1, len(res))
require.Equal(t, 1, len(res))
assert.Equal(t, "id-2", res[0].ID)
}
@@ -1041,7 +1041,7 @@ func TestService_Delete(t *testing.T) {
defer b.Close()
res, err := b.Last("radio-t", 0, time.Time{}, store.User{})
assert.Equal(t, 2, len(res))
require.Equal(t, 2, len(res))
assert.NoError(t, err)
err = b.Delete(store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, res[0].ID, store.SoftDelete)
@@ -1079,7 +1079,7 @@ func TestService_DeleteUser(t *testing.T) {
assert.NoError(t, err)
res, err = b.Last("radio-t", 0, time.Time{}, store.User{})
assert.Equal(t, 1, len(res), "only one comment left for user2")
require.Equal(t, 1, len(res), "only one comment left for user2")
assert.NoError(t, err)
assert.Equal(t, "user2", res[0].User.ID)
}
@@ -1104,7 +1104,7 @@ func TestService_List(t *testing.T) {
res, err := b.List("radio-t", 0, 0)
assert.NoError(t, err)
assert.Equal(t, 2, len(res), "2 posts")
require.Equal(t, 2, len(res), "2 posts")
assert.Equal(t, "https://radio-t.com/2", res[0].URL)
assert.Equal(t, 1, res[0].Count)
assert.Equal(t, time.Date(2018, 12, 20, 15, 18, 22, 0, time.Local), res[0].FirstTS)
@@ -1168,7 +1168,7 @@ func TestService_UserComments(t *testing.T) {
cc, err := b.User("radio-t", "user1", 0, 0, store.User{})
assert.NoError(t, err)
assert.Equal(t, 2, len(cc), "two recs for user1")
require.Equal(t, 2, len(cc), "two recs for user1")
assert.Equal(t, "id-2", cc[0].ID, "reverse sort")
assert.Equal(t, "id-1", cc[1].ID, "reverse sort")
}