Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # controller-spec (abbrev.):
- require File.dirname(__FILE__) + '/../spec_helper'
- describe UsersController do
- integrate_views
- include Authlogic::TestCase
- before(:each) do
- activate_authlogic
- @user = Factory(:user)
- #@user = User.create(:login => 'foobar', :password => 'foobar', :password_confirmation => 'foobar', :email => 'foobar@foobar.com')
- UserSession.create @user
- end
- describe "edit action" do
- it "should render edit template" do
- get :edit, :id => @user
- response.should render_template(:edit)
- end
- end
- describe "update action" do
- it "should render edit template when model is invalid" do
- User.any_instance.stubs(:valid?).returns(false)
- put :update, :id => @user
- response.should render_template(:edit)
- end
- it "should render edit template when model is valid" do
- User.any_instance.stubs(:valid?).returns(false)
- put :update, :id => @user
- response.should render_template(:edit)
- end
- end
- end
- # the problem:
- 1)
- ActiveRecord::RecordInvalid in 'UsersController update action should render edit template when model is valid'
- Validation failed:
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/validations.rb:1090:in `save_without_dirty!'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/dirty.rb:87:in `save_without_transactions!'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:182:in `transaction'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:208:in `rollback_active_record_state!'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/proxy/create.rb:6:in `result'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:316:in `run'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:260:in `create'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:291:in `send'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:291:in `default_strategy'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl.rb:21:in `Factory'
- ./spec/controllers/users_controller_spec.rb:9:
- 2)
- ActiveRecord::RecordInvalid in 'UsersController edit action should render edit template'
- Validation failed:
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/validations.rb:1090:in `save_without_dirty!'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/dirty.rb:87:in `save_without_transactions!'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:182:in `transaction'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:208:in `rollback_active_record_state!'
- /var/www/project_x/vendor/bundler_gems/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/proxy/create.rb:6:in `result'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:316:in `run'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:260:in `create'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:291:in `send'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb:291:in `default_strategy'
- /var/www/project_x/vendor/bundler_gems/gems/factory_girl-1.2.3/lib/factory_girl.rb:21:in `Factory'
- ./spec/controllers/users_controller_spec.rb:9:
- # line nr 9 is
- @user = Factory(:user)
- # the problem: the error message doesn't say _what_ validation failed.
- # So i added a login-statement:
- $cust_log.debug(@user.errors.inspect)
- and this is what i get:
- #<ActiveRecord::Errors:0xb6936a14 @base=#<User id: 26, login: "Helen_Davis", email: "qmiller@privacy.net", crypted_password: "0bcbf14086fb0f5558031820f10b3d55d462dedd3e4433e4ed7...", password_salt: "DeoerZgy2Bxhm4WvIIas", persistence_token: "5b7622c5b78fad690a28a59c8097b868092aeae5c8f8402fcde...", perishable_token: "2kE6dpJlHx98-KD2UkvT", first_name: "Michael", last_name: "Lewis", login_count: 1, failed_login_count: 0, last_request_at: "2009-12-28 22:40:15", current_login_at: "2009-12-28 22:40:15", last_login_at: nil, current_login_ip: "0.0.0.0", last_login_ip: nil, created_at: "2009-12-28 22:40:15", updated_at: "2009-12-28 22:40:15">, @errors=#<OrderedHash {}>>
- # But what now?
- # I should add that:
- # - I can run Factory(:user) a thousand times in any environment without any errors
- # - using: User.create(:login => 'foobar', :password => 'foobar', :password_confirmation => 'foobar', :email => 'foobar@foobar.com') gives me the same error
- # at last, the relevant part of my spec_helper.rb:
- ENV["RAILS_ENV"] ||= 'test'
- require File.expand_path(File.join(File.dirname(__FILE__),'..','config','environment'))
- require 'spec/autorun'
- require 'spec/rails'
- require "authlogic/test_case"
- require 'factory_girl'
- require 'spec/factories.rb'
- #require 'active_record/fixtures'
- require 'webrat_rspec_rails'
- require 'action_controller/test_process'
Add Comment
Please, Sign In to add comment