ensl.org/spec/features/calendar/google_calendar_widget_spec.rb
Luke Barratt ae6d146852 Added 2 hour start date overlap for calendar events
Added new NSL logo
Change default gather passwords
Explicitly add sprockets to the Gemfile
2014-04-04 23:56:22 +01:00

87 lines
No EOL
2.1 KiB
Ruby

require 'spec_helper'
feature 'Google Calendar widget' do
let(:events_list_json) { JSON.parse(File.read(Rails.root.join('spec/fixtures/google_calendar.json'))) }
let!(:user) { create(:user) }
before do
GoogleCalendar::Request.stub(:events_list) do
GoogleCalendar::EventList.new(events_list_json, Time.zone.name)
end
visit root_path
end
scenario 'the most recent upcoming event should appear correctly' do
time = Time.zone.local(2014, 4, 1, 12, 0, 0)
Timecop.travel(time) do
visit root_path
expect(first_event).to have_content("Div 2B: el'pheer vs. RadicaL")
end
end
feature 'Timezones offsets' do
scenario 'when a user is logged out, CEST is default' do
time = Time.zone.local(2014, 4, 1, 12, 0, 0)
Timecop.travel(time) do
visit root_path
expect(first_event).to have_content("20:30 CEST")
end
end
scenario 'when time has passed under 2 hours after the start date' do
time = Time.zone.local(2014, 4, 4, 23, 59, 0)
Timecop.travel(time) do
visit root_path
expect(first_event).to have_content("Div 3B: Mister vs. HBZ")
end
end
scenario 'when time has passed over 2 hours after the start date' do
time = Time.zone.local(2014, 4, 5, 0, 1, 0)
Timecop.travel(time) do
visit root_path
expect(first_event).not_to have_content("Div 3B: Mister vs. HBZ")
expect(first_event).to have_content("Div 3B: OMNOM vs. Mister")
end
end
scenario 'when a user is logged in, their local timezone is used' do
time = Time.zone.local(2014, 4, 1, 12, 0, 0)
Timecop.travel(time) do
sign_in_as(user)
change_timezone_for(user, timezone_us_east)
visit root_path
expect(first_event).to have_content(timezone_adjusted)
end
end
end
private
def first_event
page.find(:xpath, "//div[@id = 'index-calendar']/div/div[@class = 'content'][1]")
end
def timezone_adjusted
if Time.now.dst?
"14:30 EDT"
else
"15:30 EST"
end
end
def timezone_us_east
"Eastern Time (US & Canada)"
end
end