From 4096302a067ee3d03ba1601c33a1a9c0fe3fa3aa Mon Sep 17 00:00:00 2001 From: Umputun Date: Sat, 5 Jan 2019 20:58:34 -0600 Subject: [PATCH] test title not changed if presented --- backend/app/store/service/service.go | 1 + backend/app/store/service/service_test.go | 8 ++++++++ backend/app/store/service/title.go | 4 +++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/backend/app/store/service/service.go b/backend/app/store/service/service.go index 5974b863..5c37ecf8 100644 --- a/backend/app/store/service/service.go +++ b/backend/app/store/service/service.go @@ -60,6 +60,7 @@ func (s *DataStore) Create(comment store.Comment) (commentID string, err error) return "", errors.Wrap(err, "failed to prepare comment") } + // keep input title and set to extracted if missing if s.TitleExtractor != nil && comment.PostTitle == "" { if title, err := s.TitleExtractor.Get(comment.Locator.URL); err == nil { comment.PostTitle = title diff --git a/backend/app/store/service/service_test.go b/backend/app/store/service/service_test.go index 57c61f6e..da6a0ef0 100644 --- a/backend/app/store/service/service_test.go +++ b/backend/app/store/service/service_test.go @@ -93,6 +93,14 @@ func TestService_CreateFromPartialWithTitle(t *testing.T) { assert.NoError(t, err) t.Logf("%+v", res) assert.Equal(t, "Радио-Т 630 - Радио-Т Подкаст", res.PostTitle) + + comment.PostTitle = "post blah" + id, err = b.Create(comment) + assert.NoError(t, err) + res, err = b.Get(store.Locator{URL: "https://radio-t.com/p/2018/12/29/podcast-630/", SiteID: "radio-t"}, id) + assert.NoError(t, err) + t.Logf("%+v", res) + assert.Equal(t, "post blah", res.PostTitle, "keep comment title") } func TestService_Vote(t *testing.T) { diff --git a/backend/app/store/service/title.go b/backend/app/store/service/title.go index ab7f0a2b..a2acc31b 100644 --- a/backend/app/store/service/title.go +++ b/backend/app/store/service/title.go @@ -10,6 +10,8 @@ import ( "golang.org/x/net/html" ) +const teMaxCachedRecs = 1000 + // TitleExtractor gets html title from remote page, cached type TitleExtractor struct { client http.Client @@ -22,7 +24,7 @@ func NewTitleExtractor(client http.Client) *TitleExtractor { client: client, } var err error - res.cache, err = cache.NewMemoryCache(cache.MaxKeys(1000)) + res.cache, err = cache.NewMemoryCache(cache.MaxKeys(teMaxCachedRecs)) if err != nil { log.Printf("[WARN] failed to make cache, %v", err) res.cache = &cache.Nop{}