mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 11:44:02 +00:00
62 lines
1.9 KiB
Ruby
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
|