diff --git a/src/newsreader/js/pages/homepage/components/postlist/filters.js b/src/newsreader/js/pages/homepage/components/postlist/filters.js index 59fd665..02d6c28 100644 --- a/src/newsreader/js/pages/homepage/components/postlist/filters.js +++ b/src/newsreader/js/pages/homepage/components/postlist/filters.js @@ -11,7 +11,9 @@ export const filterPostsByRule = (rule = {}, posts = []) => { const filteredData = filteredPosts.map(post => ({ ...post, rule: { ...rule } })); - return filteredData.length > 0 ? [...filteredData] : []; + return filteredData.sort((firstPost, secondPost) => { + return new Date(secondPost.publicationDate) - new Date(firstPost.publicationDate); + }); }; export const filterPostsByCategory = (category = {}, rules = [], posts = []) => { diff --git a/src/newsreader/news/collection/tests/endpoints/rule/list/tests.py b/src/newsreader/news/collection/tests/endpoints/rule/list/tests.py index 4d1ba8f..44e3eaa 100644 --- a/src/newsreader/news/collection/tests/endpoints/rule/list/tests.py +++ b/src/newsreader/news/collection/tests/endpoints/rule/list/tests.py @@ -165,7 +165,12 @@ class NestedRuleListViewTestCase(TestCase): def test_pagination(self): rule = FeedFactory.create(user=self.user) - FeedPostFactory.create_batch(size=80, rule=rule) + + posts = sorted( + FeedPostFactory.create_batch(size=80, rule=rule), + key=lambda post: post.publication_date, + reverse=True, + ) response = self.client.get( reverse("api:news:collection:rules-nested-posts", kwargs={"pk": rule.pk}), @@ -177,6 +182,10 @@ class NestedRuleListViewTestCase(TestCase): self.assertEquals(data["count"], 80) self.assertEquals(len(data["results"]), 30) + self.assertEquals( + [post["id"] for post in data["results"]], [post.id for post in posts[:30]] + ) + def test_empty(self): rule = FeedFactory.create(user=self.user)