From 1429e5a7ecc05172d14db79ccae3566218594100 Mon Sep 17 00:00:00 2001 From: sonny Date: Mon, 31 Aug 2020 22:38:59 +0200 Subject: [PATCH] Fix post sorting by rule --- .../js/pages/homepage/components/postlist/filters.js | 4 +++- .../collection/tests/endpoints/rule/list/tests.py | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) 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)