Skip to content
This repository
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 47 lines (43 sloc) 1.379 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
if defined?(ActiveRecord::Base)
  module RSpec
    module Rails
      module Extensions
        module ActiveRecord
          module ClassMethods
            # :call-seq:
            # ModelClass.should have(:no).records
            # ModelClass.should have(1).record
            # ModelClass.should have(n).records
            #
            # Extension to enhance <tt>should have</tt> on AR Model classes
            def records
              find(:all)
            end
            alias :record :records
          end

          module InstanceMethods
            # :call-seq:
            # model.should have(:no).errors_on(:attribute)
            # model.should have(1).error_on(:attribute)
            # model.should have(n).errors_on(:attribute)
            #
            # Extension to enhance <tt>should have</tt> on AR Model instances.
            # Calls model.valid? in order to prepare the object's errors
            # object.
            def errors_on(attribute)
              self.valid?
              [self.errors[attribute]].flatten.compact
            end
            alias :error_on :errors_on
          end
        end
      end
    end
  end
  
  module ActiveRecord #:nodoc:
    class Base
      extend RSpec::Rails::Extensions::ActiveRecord::ClassMethods
      include RSpec::Rails::Extensions::ActiveRecord::InstanceMethods
    end
  end
end

Something went wrong with that request. Please try again.