basic test for Metas service

This commit is contained in:
Umputun
2018-12-20 02:49:56 -06:00
parent 25d3d3a5f4
commit 10f21f78f0
3 changed files with 31 additions and 4 deletions
+1 -1
View File
@@ -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)"`
+8 -3
View File
@@ -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
}
+22
View File
@@ -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)