From 0697cd9c6c5c4be5bff24242d746c94428fed2da Mon Sep 17 00:00:00 2001 From: Umputun Date: Wed, 23 May 2018 13:30:13 -0500 Subject: [PATCH] test failed import and bold ref --- app/migrator/remark_test.go | 23 +++++++++++++++++++++++ app/store/engine/bolt_test.go | 21 +++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/app/migrator/remark_test.go b/app/migrator/remark_test.go index 2c9a02d0..b967ba42 100644 --- a/app/migrator/remark_test.go +++ b/app/migrator/remark_test.go @@ -2,6 +2,7 @@ package migrator import ( "bytes" + "fmt" "log" "os" "testing" @@ -57,6 +58,28 @@ func TestRemark_Import(t *testing.T) { assert.Equal(t, "efbc17f177ee1a1c0ee6e1e025749966ec071adc", comments[1].ParentID) } +func TestRemark_ImportManyWithError(t *testing.T) { + goodRec := `{"id":"%d","pid":"","text":"some text, link","user":{"name":"user name","id":"user1","picture":"","profile":"","admin":false},"locator":{"site":"radio-t","url":"https://radio-t.com"},"score":0,"votes":{},"time":"2017-12-20T15:18:22-06:00"}` + "\n" + + buf := &bytes.Buffer{} + for i := 0; i < 1200; i++ { + buf.WriteString(fmt.Sprintf(goodRec, i)) + } + buf.WriteString("bad1\n") + buf.WriteString("bad2\n") + + os.Remove(testDb) + b, err := engine.NewBoltDB(bolt.Options{}, engine.BoltSite{SiteID: "radio-t", FileName: testDb}) + assert.Nil(t, err) + r := Remark{DataStore: &service.DataStore{Interface: b}} + n, err := r.Import(buf, "radio-t") + assert.EqualError(t, err, "failed to save 2 comments") + assert.Equal(t, 1200, n) + comments, err := b.Find(store.Locator{SiteID: "radio-t", URL: "https://radio-t.com"}, "time") + assert.Nil(t, err) + assert.Equal(t, 1200, len(comments)) +} + // makes new boltdb, put two records func prep(t *testing.T) *service.DataStore { os.Remove(testDb) diff --git a/app/store/engine/bolt_test.go b/app/store/engine/bolt_test.go index 1f0ac59e..ee0ba4aa 100644 --- a/app/store/engine/bolt_test.go +++ b/app/store/engine/bolt_test.go @@ -214,6 +214,27 @@ func TestBoltDB_GetForUser(t *testing.T) { } +func TestBoltDB_Ref(t *testing.T) { + b := BoltDB{} + comment := store.Comment{ + ID: "12345", + Text: `some text, link`, + Timestamp: time.Date(2017, 12, 20, 15, 18, 22, 0, time.Local), + Locator: store.Locator{URL: "https://radio-t.com/2", SiteID: "radio-t"}, + User: store.User{ID: "user1", Name: "user name"}, + } + res := b.makeRef(comment) + assert.Equal(t, "https://radio-t.com/2!!12345", string(res)) + + url, id, err := b.parseRef([]byte("https://radio-t.com/2!!12345")) + assert.Nil(t, err) + assert.Equal(t, "https://radio-t.com/2", url) + assert.Equal(t, "12345", id) + + _, _, err = b.parseRef([]byte("https://radio-t.com/2")) + assert.NotNil(t, err) +} + // makes new boltdb, put two records func prep(t *testing.T) *BoltDB { os.Remove(testDb)