Files
ch420/spec/features/publicity_spec.rb
2017-04-14 11:34:01 +02:00

75 lines
2.4 KiB
Ruby

require 'rails_helper'
feature 'Publicity' do
let(:supporter) { create :supporter, first_name: 'Hans', last_name: 'Muster' }
let(:admin) { create :supporter, admin: true }
before { sign_in(supporter) }
scenario 'User makes his announcement public' do
visit root_path
click_link 'Meine Unterstützung öffentlich kundtun ...'
fill_in 'Organisation', with: 'Schweizer Volkspartei'
fill_in 'Statement', with: 'Wir wollen ja eigentlich nur das Volk verarschen ;)'
attach_file('publicity_avatar', "#{Rails.root}/spec/support/fixtures/image.jpg")
click_button 'Zur Überprüfung einsenden'
expect(page).to have_content 'Besten Dank die Daten werden überprüft.'
end
scenario 'User makes changes announcement' do
create :publicity, supporter: supporter
visit root_path
click_link 'Statement neu einreichen'
fill_in 'Organisation', with: 'Schweizer Volkspartei'
fill_in 'Statement', with: 'Wir wollen ja eigentlich nur das Volk verarschen ;)'
attach_file('publicity_avatar', "#{Rails.root}/spec/support/fixtures/image.jpg")
click_button 'Zur Überprüfung einsenden'
expect(page).to have_content 'Besten Dank die Daten werden überprüft.'
expect(page).to have_content 'Die Veröffentlichung wurde noch nicht genehmigt'
end
scenario 'non admin users cannot manage pending publicities' do
visit admin_publicities_path
expect(page.status_code).to eq 403
end
context 'management' do
before { sign_in(admin) }
scenario 'an administrator approves a pending announcement' do
create :publicity, state: :pending, supporter: supporter
# Already declined, so we don't list it'
create :publicity, state: :declined, supporter: create(:supporter, first_name: 'Donald', last_name: 'Trump')
visit admin_publicities_path
expect(page).to have_content 'Hans Muster'
expect(page).not_to have_content 'Donald Trump'
click_link 'Bearbeiten'
fill_in 'Organisation', with: 'Free Hemp Association'
fill_in 'Statement', with: 'Marihuana ist die Heilung der Nation, Alkohol die Zerstörung.'
attach_file('publicity_avatar', "#{Rails.root}/spec/support/fixtures/image.jpg")
choose 'Das Statement wurde Veröffentlicht'
click_button 'Speichern'
expect(page).not_to have_content 'Hans Muster'
end
end
end