From f74640ac58c030cb29e6793c2913c494a7ccdfc4 Mon Sep 17 00:00:00 2001 From: Bianca Nenciu Date: Mon, 12 Jul 2021 19:35:24 +0300 Subject: [PATCH] FIX: Show correct dates in topic timelines (#13670) The date shown in topic timeline was one day later if the post at that position was made near midnight. This happened because the days number was rounded down. --- lib/topic_view.rb | 2 +- spec/components/topic_view_spec.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/topic_view.rb b/lib/topic_view.rb index 675b543b2d0..e97ea551453 100644 --- a/lib/topic_view.rb +++ b/lib/topic_view.rb @@ -608,7 +608,7 @@ class TopicView columns = [:id] if !is_mega_topic? - columns << 'EXTRACT(DAYS FROM CURRENT_TIMESTAMP - posts.created_at)::INT AS days_ago' + columns << '(EXTRACT(EPOCH FROM CURRENT_TIMESTAMP - posts.created_at) / 86400)::INT AS days_ago' end posts.pluck(*columns) diff --git a/spec/components/topic_view_spec.rb b/spec/components/topic_view_spec.rb index ceef467d067..ac4e91d746a 100644 --- a/spec/components/topic_view_spec.rb +++ b/spec/components/topic_view_spec.rb @@ -796,13 +796,13 @@ describe TopicView do end describe '#filtered_post_stream' do - let!(:post) { Fabricate(:post, topic: topic, user: first_poster) } - let!(:post2) { Fabricate(:post, topic: topic, user: evil_trout) } + let!(:post) { Fabricate(:post, topic: topic, user: first_poster, created_at: 18.hours.ago) } + let!(:post2) { Fabricate(:post, topic: topic, user: evil_trout, created_at: 6.hours.ago) } let!(:post3) { Fabricate(:post, topic: topic, user: first_poster) } it 'should return the right columns' do expect(topic_view.filtered_post_stream).to eq([ - [post.id, 0], + [post.id, 1], [post2.id, 0], [post3.id, 0] ])