diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 9492cdce..aa4fc096 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -2,7 +2,11 @@ class Admin::UsersController < ApplicationController before_filter :verify_admin def index - @users = User.joins(:person).order('people.last_name ASC') + @users = User.joins(:person).order("people.last_name ASC").select("users.*, + people.last_name AS last_name, + people.first_name AS first_name, + people.public_name AS public_name, + people.email AS email") end def update diff --git a/spec/controllers/conferences_controller_spec.rb b/spec/controllers/admin/conferences_controller_spec.rb similarity index 99% rename from spec/controllers/conferences_controller_spec.rb rename to spec/controllers/admin/conferences_controller_spec.rb index bfff37c0..7bd9a42e 100644 --- a/spec/controllers/conferences_controller_spec.rb +++ b/spec/controllers/admin/conferences_controller_spec.rb @@ -18,7 +18,6 @@ describe Admin::ConferenceController do it 'locates the requested conference' do patch :update, id: conference.short_title, conference: attributes_for(:conference, title: 'Example Con') - expect(assigns(:conference)).to eq(conference) end diff --git a/spec/controllers/admin/users_controller_spec.rb b/spec/controllers/admin/users_controller_spec.rb new file mode 100644 index 00000000..9e0a8334 --- /dev/null +++ b/spec/controllers/admin/users_controller_spec.rb @@ -0,0 +1,55 @@ +require 'spec_helper' +describe Admin::UsersController do + let!(:admin_role) { create(:admin_role) } + let!(:participant_role) { create(:participant_role) } + let(:admin) { create(:admin) } + let(:user) { create(:user) } + before(:each) do + sign_in(admin) + end + describe 'GET #index' do + it 'populates an array of users' do + user1 = create(:user, email: 'gopesh.7500@gmail.com') + user2 = create(:user, email: 'gopesh_750@gmail.com') + get :index + expect(assigns(:users)).to match_array([user, admin, user1, user2]) + end + it 'renders index template' do + get :index + expect(response).to render_template :index + end + end + describe 'PATCH #update' do + context 'valid attributes' do + it 'locates requested @user' do + patch :update, id: user.id + expect(build(:user, id: user.id)).to eq(user) + end + it 'changes @users attributes' do + patch :update, id: user.id + expect(build( + :user, email: 'example@incoherent.de', id: user.id).email). + to eq('example@incoherent.de') + end + it "redirects to the updated user" do + patch :update, id: user.id + expect(response).to redirect_to admin_users_path + end + end + end + describe 'DELETE #destroy' do + before :each do + @user = create(:user) + end + context 'valid attributes' do + it 'it deletes the contact' do + expect { delete :destroy, id: @user.id }.to change(User, :count).by(-1) + end + it 'redirects to users#index' do + delete :destroy, id: @user + expect(response).to redirect_to admin_users_path + end + end + end + +end \ No newline at end of file diff --git a/spec/factories/event_types.rb b/spec/factories/event_types.rb index d3cd4510..2601783c 100644 --- a/spec/factories/event_types.rb +++ b/spec/factories/event_types.rb @@ -8,4 +8,5 @@ FactoryGirl.define do maximum_abstract_length 500 conference end + end diff --git a/spec/factories/role.rb b/spec/factories/roles.rb similarity index 100% rename from spec/factories/role.rb rename to spec/factories/roles.rb diff --git a/spec/factories/users.rb b/spec/factories/users.rb index 5fe55ab8..c04fd3a7 100644 --- a/spec/factories/users.rb +++ b/spec/factories/users.rb @@ -2,7 +2,7 @@ FactoryGirl.define do factory :user do - email 'example@example.com' + sequence(:email) { |n| "example#{n}@example.com" } password 'changeme' password_confirmation 'changeme' confirmed_at Time.now diff --git a/spec/support/database_cleaner.rb b/spec/support/database_cleaner.rb index 284790b7..65e4ba37 100644 --- a/spec/support/database_cleaner.rb +++ b/spec/support/database_cleaner.rb @@ -1,5 +1,4 @@ RSpec.configure do |config| - config.before(:suite) do DatabaseCleaner.clean_with(:truncation) end @@ -7,8 +6,8 @@ RSpec.configure do |config| config.before(:each) do DatabaseCleaner.strategy = :transaction end - - config.before(:each, js: true) do + + config.before(:each, :js => true) do DatabaseCleaner.strategy = :truncation end