From 4e6fcb0e7d463407132e61ec0d71f4ad82231dfd Mon Sep 17 00:00:00 2001 From: Chrisbr Date: Sun, 11 May 2014 10:58:05 +0200 Subject: [PATCH] feature test for venue --- spec/features/conference_spec.rb | 54 ++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/spec/features/conference_spec.rb b/spec/features/conference_spec.rb index bd0dbce2..f923f9be 100644 --- a/spec/features/conference_spec.rb +++ b/spec/features/conference_spec.rb @@ -46,12 +46,66 @@ 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(page.find('#flash_notice').text). + 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(page.find('#flash_notice').text). + 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