basic test for Metas service
This commit is contained in:
@@ -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)"`
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user