osem-fcy/spec/features/user_spec.rb

42 lines
1.4 KiB
Ruby
Raw Normal View History

2014-05-15 17:28:08 +05:30
require 'spec_helper'
feature User do
# It is necessary to use bang version of let to build roles before user
let!(:participant_role) { create(:participant_role) }
2014-07-11 18:41:35 +03:00
let!(:organizer_role) { create(:organizer_role) }
let(:organizer) { create(:organizer) }
2014-07-21 14:37:26 +02:00
2014-07-11 18:41:35 +03:00
shared_examples 'organizer ability' do |_user|
2014-05-15 17:28:08 +05:30
scenario 'deletes a user', feature: true, js: true do
2014-07-11 18:41:35 +03:00
sign_in(organizer)
2014-05-15 17:28:08 +05:30
visit admin_users_path
expected_count = User.count - 1
page.all('btn btn-primary btn-danger') do
click_link 'Delete'
page.evaluate_script('window.confirm = function() { return true; }')
page.click('OK')
expect(flash).to eq('User got deleted')
expect(User.count).to eq(expected_count)
end
sign_out
end
scenario 'can modify roles', feature: true, js: true do
@user = create(:user)
2014-07-11 18:41:35 +03:00
sign_in(organizer)
2014-05-15 17:28:08 +05:30
visit admin_users_path
find("#user-modify-role-#{@user.id}").click
if find("#user-role-selection-#{@user.id}").visible?
page.find('#user_role_ids').find(:xpath, 'option[2]').select_option do
find('#user_submit_action').click
expect(flash).to eq("Updated #{@user.email}")
expect(@user.role_ids).to match_array([2])
end
2014-05-15 17:28:08 +05:30
end
sign_out
end
end
2014-07-21 14:37:26 +02:00
2014-07-11 18:41:35 +03:00
describe 'organizer' do
it_behaves_like 'organizer ability', :organizer
2014-05-15 17:28:08 +05:30
end
end