Skip to content

Commit

Permalink
test article filters
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthieu Jacquot committed Aug 5, 2018
1 parent f1b22f9 commit 85baedd
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions domain/article.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ func (article *Article) UpdateComments(comment Comment, add bool) {
}
}
}

func (article *Article) UpdateFavoritedBy(user User, add bool) {
if add {
article.FavoritedBy = append(article.FavoritedBy, user)
Expand Down
26 changes: 26 additions & 0 deletions domain/article_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,29 @@ func TestArticleCollection_ApplyLimitAndOffset(t *testing.T) {
assert.Equal(t, domain.ArticleCollection{}, articles.ApplyLimitAndOffset(-1, 0))
})
}

func TestArticleHasAuthor(t *testing.T) {
filter := domain.ArticleHasAuthor("author")
assert.True(t, filter(domain.Article{Author: domain.User{Name: "author"}}))
assert.False(t, filter(domain.Article{Author: domain.User{Name: "otherAuthor"}}))
}

func TestArticleHasTag(t *testing.T) {
filter := domain.ArticleHasTag("tag")
assert.True(t, filter(domain.Article{TagList: []string{"tag"}}))
assert.False(t, filter(domain.Article{TagList: []string{"otherTag"}}))
}

func TestArticleIsFavoritedBy(t *testing.T) {
t.Run("with userName", func(t *testing.T) {
filter := domain.ArticleIsFavoritedBy("user")
assert.True(t, filter(domain.Article{FavoritedBy: []domain.User{{Name: "user"}}}))
assert.False(t, filter(domain.Article{FavoritedBy: []domain.User{{Name: "otherUser"}}}))
assert.False(t, filter(domain.Article{FavoritedBy: []domain.User{{Name: ""}}}))
})

t.Run("without username", func(t *testing.T) {
emptyFilter := domain.ArticleIsFavoritedBy("")
assert.False(t, emptyFilter(domain.Article{FavoritedBy: []domain.User{{Name: ""}}})) // always returns false
})
}

0 comments on commit 85baedd

Please sign in to comment.