diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb index 7088aea..7c89e47 100644 --- a/app/helpers/events_helper.rb +++ b/app/helpers/events_helper.rb @@ -24,6 +24,7 @@ module EventsHelper end def populate_calendar(selected_date, events) + selected_date = selected_date.to_date events = events.reject{ |event| !event.display_to? user } calendar = Event.date_range(selected_date.year, selected_date.month).map do |date| [ diff --git a/app/models/event.rb b/app/models/event.rb index 99911fe..0dbe2e7 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -87,11 +87,11 @@ class Event < Article first_day = DateTime.new(year, month, 1) last_day = first_day + 1.month - 1.day - first_day..last_day + first_day.to_date..last_day.to_date end def date_range - start_date..(end_date||start_date) + start_date.to_date..(end_date||start_date).to_date end def first_paragraph diff --git a/test/unit/events_helper_test.rb b/test/unit/events_helper_test.rb index cba5fe9..e88eb4b 100644 --- a/test/unit/events_helper_test.rb +++ b/test/unit/events_helper_test.rb @@ -28,7 +28,7 @@ class EventsHelperTest < ActiveSupport::TestCase event = fast_create(Event, :profile_id => user.id) date = event.start_date calendar = populate_calendar(date, Environment.default.events) - assert_includes calendar, [date, true, true] + assert_includes calendar, [date.to_date, true, true] end should 'hide private events from guests' do @@ -37,7 +37,7 @@ class EventsHelperTest < ActiveSupport::TestCase event = fast_create(Event, :profile_id => user.id, :published => false) date = event.start_date calendar = populate_calendar(date, Environment.default.events) - assert_includes calendar, [date, false, true] + assert_includes calendar, [date.to_date, false, true] end should 'hide events from invisible profiles from guests' do @@ -46,7 +46,7 @@ class EventsHelperTest < ActiveSupport::TestCase event = fast_create(Event, :profile_id => user.id) date = event.start_date calendar = populate_calendar(date, Environment.default.events) - assert_includes calendar, [date, false, true] + assert_includes calendar, [date.to_date, false, true] end should 'hide events from private profiles from guests' do @@ -55,7 +55,7 @@ class EventsHelperTest < ActiveSupport::TestCase event = fast_create(Event, :profile_id => user.id) date = event.start_date calendar = populate_calendar(date, Environment.default.events) - assert_includes calendar, [date, false, true] + assert_includes calendar, [date.to_date, false, true] end should 'show private events to owner' do @@ -64,7 +64,7 @@ class EventsHelperTest < ActiveSupport::TestCase event = fast_create(Event, :profile_id => user.id, :published => false) date = event.start_date calendar = populate_calendar(date, Environment.default.events) - assert_includes calendar, [date, true, true] + assert_includes calendar, [date.to_date, true, true] end should 'show events from invisible profiles to owner' do @@ -73,7 +73,7 @@ class EventsHelperTest < ActiveSupport::TestCase event = fast_create(Event, :profile_id => user.id) date = event.start_date calendar = populate_calendar(date, Environment.default.events) - assert_includes calendar, [date, true, true] + assert_includes calendar, [date.to_date, true, true] end should 'show events from private profiles to owner' do @@ -82,7 +82,16 @@ class EventsHelperTest < ActiveSupport::TestCase event = fast_create(Event, :profile_id => user.id) date = event.start_date calendar = populate_calendar(date, Environment.default.events) - assert_includes calendar, [date, true, true] + assert_includes calendar, [date.to_date, true, true] + end + + should 'populate calendar for dates with timezone' do + user = create_user('userwithevents').person + stubs(:user).returns(user) + event = fast_create(Event, :profile_id => user.id, :start_date => ActiveSupport::TimeZone.new('Brasilia').now) + date = event.start_date + calendar = populate_calendar(date, Environment.default.events) + assert_includes calendar, [date.to_date, true, true] end protected -- libgit2 0.21.2