From 10f21f78f003b5ac519720640d61bc13b7c70ee6 Mon Sep 17 00:00:00 2001 From: Umputun Date: Thu, 20 Dec 2018 02:49:56 -0600 Subject: [PATCH] basic test for Metas service --- backend/app/cmd/cleanup.go | 2 +- backend/app/store/service/service.go | 11 ++++++++--- backend/app/store/service/service_test.go | 22 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/backend/app/cmd/cleanup.go b/backend/app/cmd/cleanup.go index 3b1119dc..f1211bad 100644 --- a/backend/app/cmd/cleanup.go +++ b/backend/app/cmd/cleanup.go @@ -16,7 +16,7 @@ import ( // CleanupCommand set of flags and command for cleanup type CleanupCommand struct { Site string `short:"s" long:"site" env:"SITE" default:"remark" description:"site name"` - Dry bool `long:"dry" env:"DRY" description:"dry mode, will not remove comments"` + Dry bool `long:"dry" description:"dry mode, will not remove comments"` From string `long:"from" description:"from yyyymmdd"` To string `long:"to" description:"from yyyymmdd"` BadWords []string `short:"w" long:"bword" description:"bad word(s)"` diff --git a/backend/app/store/service/service.go b/backend/app/store/service/service.go index 3ffea086..d774b624 100644 --- a/backend/app/store/service/service.go +++ b/backend/app/store/service/service.go @@ -231,9 +231,10 @@ func (s *DataStore) Metas(siteID string) (umetas []UserMetaData, pmetas []PostMe return nil, nil, errors.Wrapf(err, "can't get list of posts for %s", siteID) } for _, p := range posts { - if p.ReadOnly { + if s.IsReadOnly(store.Locator{SiteID: siteID, URL: p.URL}) { pmetas = append(pmetas, PostMetaData{URL: p.URL, ReadOnly: true}) } + } // set users meta @@ -247,7 +248,7 @@ func (s *DataStore) Metas(siteID string) (umetas []UserMetaData, pmetas []PostMe for _, b := range blocked { val, ok := m[b.ID] if !ok { - val = UserMetaData{} + val = UserMetaData{UserID: b.ID} } val.Blocked.Status = true val.Blocked.Until = b.Until @@ -262,12 +263,16 @@ func (s *DataStore) Metas(siteID string) (umetas []UserMetaData, pmetas []PostMe for _, v := range verified { val, ok := m[v] if !ok { - val = UserMetaData{} + val = UserMetaData{UserID: v} } val.Verified = true m[v] = val } + for _, u := range m { + umetas = append(umetas, u) + } + return umetas, pmetas, nil } diff --git a/backend/app/store/service/service_test.go b/backend/app/store/service/service_test.go index b5b22297..3ede92af 100644 --- a/backend/app/store/service/service_test.go +++ b/backend/app/store/service/service_test.go @@ -374,6 +374,28 @@ func TestService_Counts(t *testing.T) { }, res) } +func TestService_Metas(t *testing.T) { + defer os.Remove(testDb) + // two comments for https://radio-t.com + b := DataStore{Interface: prepStoreEngine(t), EditDuration: 100 * time.Millisecond, + AdminStore: admin.NewStaticKeyStore("secret 123")} + + assert.NoError(t, b.SetVerified("radio-t", "user1", true)) + assert.NoError(t, b.SetReadOnly(store.Locator{URL: "https://radio-t.com", SiteID: "radio-t"}, true)) + + um, pm, err := b.Metas("radio-t") + require.NoError(t, err) + + assert.Equal(t, 1, len(um)) + assert.Equal(t, "user1", um[0].UserID) + assert.Equal(t, true, um[0].Verified) + assert.Equal(t, false, um[0].Blocked.Status) + + assert.Equal(t, 1, len(pm)) + assert.Equal(t, "https://radio-t.com", pm[0].URL) + assert.Equal(t, true, pm[0].ReadOnly) +} + // makes new boltdb, put two records func prepStoreEngine(t *testing.T) engine.Interface { os.Remove(testDb)