2014-05-15 17:28:08 +05:30
|
|
|
require 'spec_helper'
|
2014-08-12 11:51:59 +03:00
|
|
|
|
2014-05-15 17:28:08 +05:30
|
|
|
feature User do
|
2014-07-21 14:37:26 +02:00
|
|
|
shared_examples 'admin ability' do
|
2014-05-15 17:28:08 +05:30
|
|
|
scenario 'deletes a user', feature: true, js: true do
|
2014-08-12 11:51:59 +03:00
|
|
|
sign_in(create(:admin))
|
2014-08-10 11:41:35 +05:30
|
|
|
@user = create(:user)
|
2014-05-15 17:28:08 +05:30
|
|
|
visit admin_users_path
|
|
|
|
|
expected_count = User.count - 1
|
2014-08-10 11:41:35 +05:30
|
|
|
find("#user-delete-#{@user.id}").click
|
|
|
|
|
page.evaluate_script('window.confirm = function() { return true; }')
|
|
|
|
|
expect(flash).to eq('User got deleted')
|
|
|
|
|
expect(User.count).to eq(expected_count)
|
|
|
|
|
sign_out
|
|
|
|
|
end
|
|
|
|
|
scenario 'deletes a user with scheduled events', feature: true, js: true do
|
|
|
|
|
sign_in(create(:admin))
|
|
|
|
|
@user = create(:user)
|
2014-09-11 19:01:48 +05:30
|
|
|
deleted_user = create(:deleted_user, email:'deleted@localhost.osem')
|
2014-08-10 11:41:35 +05:30
|
|
|
@user.events << create(:event, start_time: DateTime.now)
|
|
|
|
|
event = @user.events.first
|
|
|
|
|
visit admin_users_path
|
|
|
|
|
expected_count = User.count - 1
|
|
|
|
|
find("#user-delete-#{@user.id}").click
|
|
|
|
|
page.evaluate_script('window.confirm = function() { return true; }')
|
|
|
|
|
expect(flash).to eq('User got deleted')
|
|
|
|
|
expect(User.count).to eq(expected_count)
|
|
|
|
|
expect(event.event_users.map{|x| User.find(x.user_id)}).to include(deleted_user)
|
2014-05-15 17:28:08 +05:30
|
|
|
sign_out
|
|
|
|
|
end
|
|
|
|
|
end
|
2014-07-21 14:37:26 +02:00
|
|
|
|
2014-05-15 17:28:08 +05:30
|
|
|
describe 'admin' do
|
|
|
|
|
it_behaves_like 'admin ability', :admin
|
|
|
|
|
end
|
|
|
|
|
end
|