spec/authority/abilities_spec.rb in authority-2.1.0 vs spec/authority/abilities_spec.rb in authority-2.2.0

- old
+ new

@@ -1,7 +1,7 @@ require 'spec_helper' -require 'support/ability_model' +require 'support/example_model' require 'support/user' describe Authority::Abilities do before :each do @@ -9,35 +9,35 @@ end describe "authorizer" do it "should have a class attribute getter for authorizer_name" do - AbilityModel.should respond_to(:authorizer_name) + ExampleModel.should respond_to(:authorizer_name) end it "should have a class attribute setter for authorizer_name" do - AbilityModel.should respond_to(:authorizer_name=) + ExampleModel.should respond_to(:authorizer_name=) end it "should have a default authorizer_name of 'ApplicationAuthorizer'" do - AbilityModel.authorizer_name.should eq("ApplicationAuthorizer") + ExampleModel.authorizer_name.should eq("ApplicationAuthorizer") end it "should constantize the authorizer name as the authorizer" do - AbilityModel.instance_variable_set(:@authorizer, nil) - AbilityModel.authorizer_name.should_receive(:constantize) - AbilityModel.authorizer + ExampleModel.instance_variable_set(:@authorizer, nil) + ExampleModel.authorizer_name.should_receive(:constantize) + ExampleModel.authorizer end it "should memoize the authorizer to avoid reconstantizing" do - AbilityModel.authorizer - AbilityModel.authorizer_name.should_not_receive(:constantize) - AbilityModel.authorizer + ExampleModel.authorizer + ExampleModel.authorizer_name.should_not_receive(:constantize) + ExampleModel.authorizer end it "should raise a friendly error if the authorizer doesn't exist" do - class NoAuthorizerModel < AbilityModel; end ; + class NoAuthorizerModel < ExampleModel; end ; NoAuthorizerModel.instance_variable_set(:@authorizer, nil) NoAuthorizerModel.authorizer_name = 'NonExistentAuthorizer' expect { NoAuthorizerModel.authorizer }.to raise_error(Authority::NoAuthorizerError) end @@ -47,27 +47,27 @@ Authority.adjectives.each do |adjective| method_name = "#{adjective}_by?" it "should respond to `#{method_name}`" do - AbilityModel.should respond_to(method_name) + ExampleModel.should respond_to(method_name) end describe "if given an options hash" do it "should delegate `#{method_name}` to its authorizer class, passing the options" do - AbilityModel.authorizer.should_receive(method_name).with(@user, :lacking => 'nothing') - AbilityModel.send(method_name, @user, :lacking => 'nothing') + ExampleModel.authorizer.should_receive(method_name).with(@user, :lacking => 'nothing') + ExampleModel.send(method_name, @user, :lacking => 'nothing') end end describe "if not given an options hash" do it "should delegate `#{method_name}` to its authorizer class, passing no options" do - AbilityModel.authorizer.should_receive(method_name).with(@user) - AbilityModel.send(method_name, @user) + ExampleModel.authorizer.should_receive(method_name).with(@user) + ExampleModel.send(method_name, @user) end end end @@ -75,52 +75,52 @@ end describe "instance methods" do before :each do - @ability_model = AbilityModel.new - @authorizer = AbilityModel.authorizer.new(@ability_model) + @example_model = ExampleModel.new + @authorizer = ExampleModel.authorizer.new(@example_model) end Authority.adjectives.each do |adjective| method_name = "#{adjective}_by?" it "should respond to `#{method_name}`" do - @ability_model.should respond_to(method_name) + @example_model.should respond_to(method_name) end describe "if given an options hash" do it "should delegate `#{method_name}` to a new authorizer instance, passing the options" do - AbilityModel.authorizer.stub(:new).and_return(@authorizer) + ExampleModel.authorizer.stub(:new).and_return(@authorizer) @authorizer.should_receive(method_name).with(@user, :with => 'mayo') - @ability_model.send(method_name, @user, :with => 'mayo') + @example_model.send(method_name, @user, :with => 'mayo') end end describe "if not given an options hash" do it "should delegate `#{method_name}` to a new authorizer instance, passing no options" do - AbilityModel.authorizer.stub(:new).and_return(@authorizer) + ExampleModel.authorizer.stub(:new).and_return(@authorizer) @authorizer.should_receive(method_name).with(@user) - @ability_model.send(method_name, @user) + @example_model.send(method_name, @user) end end end it "should provide an accessor for its authorizer" do - @ability_model.should respond_to(:authorizer) + @example_model.should respond_to(:authorizer) end # When checking instance methods, we want to ensure that every check uses a new # instance of the authorizer. Otherwise, you might check, make a change to the # model instance, check again, and get an outdated answer. it "should always create a new authorizer instance when accessing the authorizer" do - @ability_model.class.authorizer.should_receive(:new).with(@ability_model).twice - 2.times { @ability_model.authorizer } + @example_model.class.authorizer.should_receive(:new).with(@example_model).twice + 2.times { @example_model.authorizer } end end end