From 6a6a8bf365316a7e9c32f59f6566f74d2aacf2a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 10 Oct 2019 02:21:34 +0200 Subject: [PATCH] Fix milestone publication date comparison We're storing the publication date as datetime in the database, and we were comparing it to a date, meaning today's milestones were not being found. --- app/models/milestone.rb | 2 +- spec/models/milestone_spec.rb | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/models/milestone.rb b/app/models/milestone.rb index d4219c004..f36120fa1 100644 --- a/app/models/milestone.rb +++ b/app/models/milestone.rb @@ -14,7 +14,7 @@ class Milestone < ApplicationRecord validates_translation :description, presence: true, unless: -> { status_id.present? } scope :order_by_publication_date, -> { order(publication_date: :asc, created_at: :asc) } - scope :published, -> { where("publication_date <= ?", Date.current) } + scope :published, -> { where("publication_date <= ?", Date.current.end_of_day) } scope :with_status, -> { where("status_id IS NOT NULL") } def self.title_max_length diff --git a/spec/models/milestone_spec.rb b/spec/models/milestone_spec.rb index 4904a1ab1..e24c43314 100644 --- a/spec/models/milestone_spec.rb +++ b/spec/models/milestone_spec.rb @@ -43,16 +43,17 @@ describe Milestone do end end - describe ".published" do - it "uses the application's time zone date", :application_zone_west_of_system_zone do - published_in_local_time_zone = create(:milestone, - publication_date: Date.today) + describe ".published", :application_zone_west_of_system_zone do + it "includes milestones published today" do + todays_milestone = create(:milestone, publication_date: Time.current) - published_in_application_time_zone = create(:milestone, - publication_date: Date.current) + expect(Milestone.published).to eq [todays_milestone] + end - expect(Milestone.published).to eq [published_in_application_time_zone] - expect(Milestone.published).not_to include(published_in_local_time_zone) + it "does not include future milestones" do + create(:milestone, publication_date: Date.tomorrow.beginning_of_day) + + expect(Milestone.published).to be_empty end end end