osem-fcy/spec/features/organization_spec.rb
2018-11-19 08:40:55 -08:00

62 lines
1.9 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
feature Organization do
let!(:organization) { create(:organization) }
let!(:organization_admin_role) { Role.find_by(name: 'organization_admin', resource: organization) }
let(:organization_admin) { create(:user, role_ids: [organization_admin_role.id]) }
let(:admin_user) { create(:admin) }
shared_examples 'successfully updates an organization' do
scenario 'updates a exsisting organization', feature: true, js: true do
visit edit_admin_organization_path(organization)
fill_in 'organization_name', with: 'changed name'
click_button 'Update Organization'
organization.reload
page.find('#flash')
expect(flash).to eq('Organization successfully updated')
expect(organization.name).to eq('changed name')
end
end
context 'signed in as site admin' do
before do
sign_in admin_user
end
scenario 'creates a new organization', feature: true, js: true do
visit new_admin_organization_path
fill_in 'organization_name', with: 'Organization name'
click_button 'Create Organization'
page.find('#flash')
expect(flash).to eq('Organization successfully created')
expect(Organization.last.name).to eq('Organization name')
end
it_behaves_like 'successfully updates an organization'
end
context 'signed in as organization admin' do
before do
sign_in organization_admin
end
scenario "can't create new organization", feature: true, js: true do
visit new_admin_organization_path
page.find('#flash')
expect(flash).to eq('You are not authorized to access this page.')
end
it_behaves_like 'successfully updates an organization'
end
context 'anonymously' do
scenario 'index should link to conferences list' do
visit organizations_path
expect(page).to have_link('Conferences', href: "/organizations/#{organization.id}/conferences")
end
end
end