spec/spec_helper.rb in simple_auth-1.5.0 vs spec/spec_helper.rb in simple_auth-2.0.0

- old
+ new

@@ -1,187 +1,21 @@ ENV["RAILS_ENV"] = "test" -require "bundler" -Bundler.setup(:default, :development, :test) +require "bundler/setup" Bundler.require I18n.load_path += Dir[File.expand_path("../../locales/*.yml", __FILE__)] +I18n.enforce_available_locales = false require "rails" require "simple_auth" require File.dirname(__FILE__) + "/support/config/boot" require "rspec/rails" -require "mongo_mapper" # Load database schema load File.dirname(__FILE__) + "/schema.rb" -# Set up MongoDB connection -MongoMapper.connection = Mongo::Connection.new("localhost") -MongoMapper.database = "simple_auth" - # Restore default configuration RSpec.configure do |config| config.before :each do load File.dirname(__FILE__) + "/../lib/simple_auth/config.rb" - end -end - -shared_examples_for "orm" do - before do - SimpleAuth::Config.model = model_name - end - - context "configuration" do - it "should set credentials" do - model.authentication do |config| - config.credentials = ["uid"] - end - - SimpleAuth::Config.credentials.should == ["uid"] - end - - it "should automatically set model" do - model.authentication do |config| - config.model = nil - end - - SimpleAuth::Config.model.should == model_name - end - end - - context "new record" do - before do - subject.should_not be_valid - end - - it "should require password" do - subject.errors[:password].should_not be_empty - end - - it "should require password to be at least 4-chars long" do - subject.password = "123" - subject.should_not be_valid - subject.errors[:password].should_not be_empty - end - - it "should require password confirmation not to be empty" do - subject.password_confirmation = "" - subject.errors[:password_confirmation].should_not be_empty - end - - it "should require password confirmation not to be nil" do - subject.password_confirmation = nil - subject.errors[:password_confirmation].should_not be_empty - end - - it "should unset password after saving" do - subject = model.new(:password => "test", :password_confirmation => "test") - subject.save - subject.password.should be_nil - subject.password_confirmation.should be_nil - end - - it "should mark password as changed" do - subject = model.new(:password => "test") - subject.password_changed?.should be_true - end - - it "should not mark password as changed" do - subject = model.new - subject.password_changed?.should be_false - end - - it "should mark password as unchanged after saving" do - subject = model.new(:password => "test", :password_confirmation => "test") - subject.save - subject.password_changed?.should be_false - end - end - - context "existing record" do - before do - model.delete_all - model.create( - :email => "john@doe.com", - :login => "johndoe", - :password => "test", - :password_confirmation => "test", - :username => "john" - ) - end - - subject { model.first } - - it "should not require password when it hasn't changed" do - subject.login = "john" - subject.should be_valid - end - - it "should require password when explicitly said so" do - subject.require_password! - subject.should_not be_valid - subject.errors[:password].should_not be_empty - end - - it "should require password" do - subject.require_password?.should be_false - subject.require_password! - subject.require_password?.should be_true - end - - it "should not require password after saving" do - subject.require_password! - subject.password = "newpass" - subject.password_confirmation = "newpass" - subject.save.should be_true - subject.require_password?.should be_false - end - - it "should require password confirmation when it has changed" do - subject.password = "newpass" - subject.should_not be_valid - subject.errors[:password_confirmation].should_not be_empty - end - - it "should require password when it has changed to blank" do - subject.password = nil - subject.should_not be_valid - subject.errors[:password].should_not be_empty - end - - it "should authenticate using email" do - model.authenticate("john@doe.com", "test").should == subject - end - - it "should authenticate using login" do - model.authenticate("johndoe", "test").should == subject - end - - it "should authenticate using custom attribute" do - SimpleAuth::Config.credentials = [:username] - model.authenticate("john", "test").should == subject - end - - it "should not authenticate using invalid credential" do - model.authenticate("invalid", "test").should be_nil - end - - it "should not authenticate using wrong password" do - model.authenticate("johndoe", "invalid").should be_nil - end - - it "should return nil when no user has been found" do - model.find_by_credential("invalid").should be_nil - end - - it "should raise error when no user has been found" do - expect { - model.find_by_credential!("invalid") - }.to raise_error(SimpleAuth::RecordNotFound) - end - - it "should return user" do - model.find_by_credential(subject.email).should == subject - model.find_by_credential!(subject.email).should == subject - end end end