diff --git a/app/components/admin/duration_component.rb b/app/components/admin/duration_component.rb index 417e8edd3..5a8f49cd6 100644 --- a/app/components/admin/duration_component.rb +++ b/app/components/admin/duration_component.rb @@ -16,6 +16,10 @@ class Admin::DurationComponent < ApplicationComponent end def end_time - durable.ends_at - 1.second if durable.ends_at.present? + if durable.ends_at.present? && durable.ends_at == durable.ends_at.beginning_of_day + durable.ends_at - 1.second + else + durable.ends_at + end end end diff --git a/spec/components/admin/duration_component_spec.rb b/spec/components/admin/duration_component_spec.rb index 9780df837..6271a3d31 100644 --- a/spec/components/admin/duration_component_spec.rb +++ b/spec/components/admin/duration_component_spec.rb @@ -9,9 +9,20 @@ describe Admin::DurationComponent do render_inline Admin::DurationComponent.new(durable) - expect(page.text).to eq "2015-08-01 12:00 - 2016-09-30 16:29" + expect(page.text).to eq "2015-08-01 12:00 - 2016-09-30 16:30" expect(page).to have_css "time", exact_text: "2015-08-01 12:00" - expect(page).to have_css "time", exact_text: "2016-09-30 16:29" + expect(page).to have_css "time", exact_text: "2016-09-30 16:30" + end + + it "shows the moment before the end date when it ends at midnight" do + durable = double( + starts_at: Time.zone.local(2015, 8, 1, 12, 0, 0), + ends_at: Time.zone.local(2016, 9, 30, 00, 00, 00) + ) + + render_inline Admin::DurationComponent.new(durable) + + expect(page.text).to eq "2015-08-01 12:00 - 2016-09-29 23:59" end it "shows the start date when no end date is defined" do @@ -27,6 +38,6 @@ describe Admin::DurationComponent do render_inline Admin::DurationComponent.new(durable) - expect(page.text).to eq "- 2016-09-30 16:29" + expect(page.text).to eq "- 2016-09-30 16:30" end end