lib/auth_helpers/spec/recoverable.rb in josevalim-auth_helpers-0.1.2 vs lib/auth_helpers/spec/recoverable.rb in josevalim-auth_helpers-0.2.0
- old
+ new
@@ -8,51 +8,44 @@
before(:each) do
@recoverable = base.described_class.create!(@valid_attributes)
ActionMailer::Base.deliveries = []
end
- it "should send a reset password code to the user" do
- record = base.described_class.find_and_send_reset_password_code(:email => @recoverable.email)
+ it "should send a reset password instructions to the user" do
+ record = base.described_class.find_and_send_reset_password_instructions(:email => @recoverable.email)
record.errors.should be_empty
- record.reset_password_code.should_not be_blank
- ActionMailer::Base.deliveries.length.should == 1
+ ActionMailer::Base.deliveries.length.should == 1
end
describe 'and reset password code is sent' do
before(:each) do
- base.described_class.find_and_send_reset_password_code(:email => @recoverable.email)
+ base.described_class.find_and_send_reset_password_instructions(:email => @recoverable.email)
@recoverable.reload
end
it "should reset password if reset password code is valid" do
- record = base.described_class.find_and_reset_password(:reset_password_code => @recoverable.reset_password_code, :password => '654321', :password_confirmation => '654321')
- record.errors.should be_empty
-
- record = base.described_class.find_and_authenticate(:email => @recoverable.email, :password => '654321')
- record.errors.should be_empty
- end
-
- it "should not reset password if the given reset password code is invalid" do
- record = base.described_class.find_and_reset_password(:reset_password_code => 'invalid_pass_code', :password => '654321', :password_confirmation => '654321')
- record.errors.on(:reset_password_code).should == record.errors.generate_message(:reset_password_code, :invalid)
- record = base.described_class.find_and_authenticate(:email => @recoverable.email, :password => '654321')
- record.errors.should_not be_empty
- end
-
- it "should not reset password if password doesn't match confirmation" do
- record = base.described_class.find_and_reset_password(:reset_password_code => @recoverable.reset_password_code, :password => '654321', :password_confirmation => '123456')
- record.errors.on(:password).should == record.errors.generate_message(:password, :confirmation)
-
- record = base.described_class.find_and_authenticate(:email => @recoverable.email, :password => '654321')
- record.errors.should_not be_empty
- end
-
- it "should clean reset_password_code when password is successfully reset" do
- base.described_class.find_and_reset_password(:reset_password_code => @recoverable.reset_password_code, :password => '654321', :password_confirmation => '654321')
- @recoverable.reload
- @recoverable.reset_password_code.should be_nil
+ record = base.described_class.find_and_reset_password(:perishable_token => @recoverable.perishable_token, :password => '654321', :password_confirmation => '654321')
+ record.errors.should be_empty
+
+ @recoverable.reload
+ @recoverable.valid_password?('654321').should be_true
end
- end
+
+ it "should not reset password if the given reset password code is invalid" do
+ record = base.described_class.find_and_reset_password(:perishable_token => 'invalid_token', :password => '654321', :password_confirmation => '654321')
+ record.errors.on(:perishable_token).should == record.errors.generate_message(:perishable_token, :invalid_reset_password, :default => :invalid)
+ @recoverable.reload
+ @recoverable.valid_password?('654321').should be_false
+ end
+
+ it "should not reset password if password doesn't match confirmation" do
+ record = base.described_class.find_and_reset_password(:perishable_token => @recoverable.perishable_token, :password => '654321', :password_confirmation => '123456')
+ record.errors.on(:password).should == record.errors.generate_message(:password, :confirmation)
+
+ @recoverable.reload
+ @recoverable.valid_password?('654321').should be_false
+ end
+ end
end
end
end
end