Files
grecia/spec/features/admin/organizations_spec.rb
2015-08-27 19:05:50 +02:00

127 lines
4.1 KiB
Ruby

require 'rails_helper'
feature 'Admin::Organizations' do
background do
administrator = create(:user)
create(:administrator, user: administrator)
login_as(administrator)
end
scenario "pending organizations have links to verify and reject" do
organization = create(:organization)
visit admin_organizations_path
expect(page).to have_link('Verify')
expect(page).to have_link('Reject')
click_on 'Verify'
expect(current_path).to eq(admin_organizations_path)
expect(page).to have_content ('Verified')
expect(organization.reload.verified?).to eq(true)
end
scenario "verified organizations have link to reject" do
organization = create(:organization, :verified)
visit admin_organizations_path
expect(page).to have_content ('Verified')
expect(page).to_not have_link('Verify')
expect(page).to have_link('Reject')
click_on 'Reject'
expect(current_path).to eq(admin_organizations_path)
expect(page).to have_content ('Rejected')
expect(organization.reload.rejected?).to eq(true)
end
scenario "rejected organizations have link to verify" do
organization = create(:organization, :rejected)
visit admin_organizations_path
expect(page).to have_link('Verify')
expect(page).to_not have_link('Reject', exact: true)
click_on 'Verify'
expect(current_path).to eq(admin_organizations_path)
expect(page).to have_content ('Verified')
expect(organization.reload.verified?).to eq(true)
end
scenario "Current filter is properly highlighted" do
visit admin_organizations_path
expect(page).to_not have_link('All')
expect(page).to have_link('Pending')
expect(page).to have_link('Verified')
expect(page).to have_link('Rejected')
visit admin_organizations_path(filter: 'all')
expect(page).to_not have_link('All')
expect(page).to have_link('Pending')
expect(page).to have_link('Verified')
expect(page).to have_link('Rejected')
visit admin_organizations_path(filter: 'pending')
expect(page).to have_link('All')
expect(page).to_not have_link('Pending')
expect(page).to have_link('Verified')
expect(page).to have_link('Rejected')
visit admin_organizations_path(filter: 'verified')
expect(page).to have_link('All')
expect(page).to have_link('Pending')
expect(page).to_not have_link('Verified')
expect(page).to have_link('Rejected')
visit admin_organizations_path(filter: 'rejected')
expect(page).to have_link('All')
expect(page).to have_link('Pending')
expect(page).to have_link('Verified')
expect(page).to_not have_link('Rejected')
end
scenario "Filtering organizations" do
create(:organization, name: "Pending Organization")
create(:organization, :rejected, name: "Rejected Organization")
create(:organization, :verified, name: "Verified Organization")
visit admin_organizations_path(filter: 'all')
expect(page).to have_content('Pending Organization')
expect(page).to have_content('Rejected Organization')
expect(page).to have_content('Verified Organization')
visit admin_organizations_path(filter: 'pending')
expect(page).to have_content('Pending Organization')
expect(page).to_not have_content('Rejected Organization')
expect(page).to_not have_content('Verified Organization')
visit admin_organizations_path(filter: 'verified')
expect(page).to_not have_content('Pending Organization')
expect(page).to_not have_content('Rejected Organization')
expect(page).to have_content('Verified Organization')
visit admin_organizations_path(filter: 'rejected')
expect(page).to_not have_content('Pending Organization')
expect(page).to have_content('Rejected Organization')
expect(page).to_not have_content('Verified Organization')
end
scenario "Verifying organization links remember the pagination setting and the filter" do
per_page = Kaminari.config.default_per_page
(per_page + 2).times { create(:organization) }
visit admin_organizations_path(filter: 'pending', page: 2)
click_on('Verify', match: :first)
expect(current_url).to include('filter=pending')
expect(current_url).to include('page=2')
end
end