Merge pull request #128 from ChrisBr/refactor_conf_spec

Refactoring conference feature test
This commit is contained in:
Christian Bruckmayer 2014-05-15 13:16:16 +02:00
commit 60ca821419
2 changed files with 77 additions and 56 deletions

View file

@ -19,8 +19,13 @@ feature Conference do
select('(GMT+01:00) Berlin', from: 'conference[timezone]')
page.execute_script("$('#conference-start-datepicker').val('21/12/2014')")
page.execute_script("$('#conference-end-datepicker').val('24/12/2014')")
today = Date.today - 1
page.
execute_script("$('#conference-start-datepicker').val('" +
"#{today.strftime('%d/%m/%Y')}')")
page.
execute_script("$('#conference-end-datepicker').val('" +
"#{(today + 7).strftime('%d/%m/%Y')}')")
click_button 'Create Conference'
@ -51,66 +56,12 @@ feature Conference do
end
end
shared_examples 'venue' do |user|
scenario 'adds and updates venue' do
conference = create(:conference)
sign_in create(user)
visit admin_conference_venue_info_path(conference_id: conference.short_title)
expect(page.find("//*[@id='venue_submit_action']").text).to eq('Update Venue')
fill_in 'venue_name', with: 'Example University'
fill_in 'venue_address', with: 'Example Street 42 \n 12345 Example City \n Germany'
fill_in 'venue_website', with: 'www.example.com'
fill_in 'venue_description',
with: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam' \
'nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,' \
'sed diam voluptua.'
click_button 'Update Venue'
expect(flash).
to eq('Venue was successfully updated.')
venue = Conference.find(conference.id).venue
expect(venue.name).to eq('Example University')
expect(venue.address).to eq('Example Street 42 \n 12345 Example City \n Germany')
expect(venue.website).to eq('www.example.com')
expect(venue.description).to eq('Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam' \
'nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,' \
'sed diam voluptua.')
fill_in 'venue_name', with: 'Example University new'
fill_in 'venue_address', with: 'Example Street 42 \n 12345 Example City \n Germany new'
fill_in 'venue_website', with: 'www.example.com new'
fill_in 'venue_description',
with: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam' \
'nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,' \
'sed diam voluptua. new'
click_button 'Update Venue'
expect(flash).
to eq('Venue was successfully updated.')
venue.reload
expect(venue.name).to eq('Example University new')
expect(venue.address).to eq('Example Street 42 \n 12345 Example City \n Germany new')
expect(venue.website).to eq('www.example.com new')
expect(venue.description).to eq('Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam' \
'nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,' \
'sed diam voluptua. new')
end
end
describe 'admin' do
it_behaves_like 'add and update conference', :admin
it_behaves_like 'venue', :admin
end
describe 'organizer' do
it_behaves_like 'add and update conference', :organizer
it_behaves_like 'venue', :organizer
end
end

View file

@ -0,0 +1,70 @@
require 'spec_helper'
feature Conference do
# It is necessary to use bang version of let to build roles before user
let!(:organizer_role) { create(:organizer_role) }
let!(:participant_role) { create(:participant_role) }
let!(:admin_role) { create(:admin_role) }
shared_examples 'venue' do |user|
scenario 'adds and updates venue' do
conference = create(:conference)
sign_in create(user)
visit admin_conference_venue_info_path(
conference_id: conference.short_title)
expect(page.find("//*[@id='venue_submit_action']").
text).to eq('Update Venue')
fill_in 'venue_name', with: 'Example University'
fill_in 'venue_address', with: 'Example Street 42 \n' +
'12345 Example City \n Germany'
fill_in 'venue_website', with: 'www.example.com'
fill_in 'venue_description',
with: 'Lorem ipsum dolor sit amet, consetetur' \
'sadipscing elitr, sed diam nonumy eirmod tempor'
click_button 'Update Venue'
expect(flash).
to eq('Venue was successfully updated.')
venue = Conference.find(conference.id).venue
expect(venue.name).to eq('Example University')
expect(venue.address).to eq('Example Street 42 \n' \
'12345 Example City \n Germany')
expect(venue.website).to eq('www.example.com')
expect(venue.description).to eq('Lorem ipsum dolor sit amet, consetetur' \
'sadipscing elitr, sed diam nonumy eirmod tempor')
fill_in 'venue_name', with: 'Example University new'
fill_in 'venue_address', with: 'Example Street 42 \n ' \
'12345 Example City \n Germany new'
fill_in 'venue_website', with: 'www.example.com new'
fill_in 'venue_description',
with: 'new'
click_button 'Update Venue'
expect(flash).
to eq('Venue was successfully updated.')
venue.reload
expect(venue.name).to eq('Example University new')
expect(venue.address).to eq('Example Street 42 \n ' \
'12345 Example City \n Germany new')
expect(venue.website).to eq('www.example.com new')
expect(venue.description).to eq('new')
end
end
describe 'admin' do
it_behaves_like 'venue', :admin
end
describe 'organizer' do
it_behaves_like 'venue', :organizer
end
end