Some basic tests for user controller index

This commit is contained in:
Gopesh Tulsyan 2014-05-12 17:53:11 +05:30
parent 4955481f14
commit c97affca35
8 changed files with 31 additions and 38 deletions

View file

@ -1,34 +1,27 @@
require 'spec_helper' require 'spec_helper'
describe Admin::UsersController do describe Admin::UsersController do
shared_examples 'access as administration' do
describe "GET '#index'" do
it 'populates an array of users' do
user1,user2 = create(:user,email:"gopesh.7500@gmail.com"),create(:user,email:"gopesh@gmail.com")
get :index
expect(assigns(:users)).to match_array([user1,user2])
end
it 'renders index template' do before(:each) do
get :index @user = create(:user)
expect(response).to render_template :index @admin = create(:admin)
end 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@gmail.com")
get :index
# pp response.body
expect(assigns(:users)).to match_array([@user,@admin,user1,user2])
end end
describe "PATCH '#update'" do it 'renders index template' do
it 'locates the user' do get :index
patch :update, id: @user.id, :user => {email:@user.email} # pp response.body
expect(assigns(:user)).to eq(@user) expect(response).to render_template :index
end
end
describe 'admin access' do
before(:each) do
@user = create(:user)
@admin = create(:admin)
sign_in(@admin)
end
it_behaves_like 'access as administration'
end end
end end
end end

View file

@ -7,4 +7,11 @@ FactoryGirl.define do
password_confirmation 'changeme' password_confirmation 'changeme'
confirmed_at Time.now confirmed_at Time.now
end end
factory :admin, class: User do
sequence(:email) {|n|'gopesh#{n}@exampleco.in'}
password 'changeme'
password_confirmation 'changeme'
confirmed_at Time.now
after(:create) { |user| user.role_ids = [3] }
end
end end

View file

@ -10,7 +10,7 @@ require File.expand_path("../../config/environment", __FILE__)
# end # end
require 'rspec/rails' require 'rspec/rails'
ActiveRecord::Migration.maintain_test_schema!
# Requires supporting ruby files with custom matchers and macros, etc, in # Requires supporting ruby files with custom matchers and macros, etc, in
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
# run as spec files by default. This means that files in spec/support that end # run as spec files by default. This means that files in spec/support that end
@ -47,7 +47,7 @@ RSpec.configure do |config|
config.include Devise::TestHelpers, type: :controller config.include Devise::TestHelpers, type: :controller
# Includes support/login_macros for feature tests # Includes support/login_macros for feature tests
config.include SigninMacros, type: :feature config.include SignInMacros, type: :feature
# Include factory_girls syntax # Include factory_girls syntax
config.include FactoryGirl::Syntax::Methods config.include FactoryGirl::Syntax::Methods

View file

@ -1,5 +1,4 @@
RSpec.configure do |config| RSpec.configure do |config|
config.before(:suite) do config.before(:suite) do
DatabaseCleaner.clean_with(:truncation) DatabaseCleaner.clean_with(:truncation)
end end
@ -19,5 +18,4 @@ RSpec.configure do |config|
config.after(:each) do config.after(:each) do
DatabaseCleaner.clean DatabaseCleaner.clean
end end
end end

View file

@ -1,7 +1,5 @@
RSpec.configure do |config| RSpec.configure do |config|
config.before(:suite) do config.before(:suite) do
FactoryGirl.lint FactoryGirl.lint
end end
end end

View file

@ -1,7 +1,5 @@
RSpec.configure do |config| RSpec.configure do |config|
config.before(:suite) do
config.before(:suite) do
load "#{Rails.root}/db/seeds.rb" load "#{Rails.root}/db/seeds.rb"
end end
end end

View file

@ -1,5 +1,4 @@
module SignInMacros
module SigninMacros
def sign_in(user) def sign_in(user)
visit new_user_session_path visit new_user_session_path
fill_in 'user_email', with:'user.email' fill_in 'user_email', with:'user.email'