Skip to content
This repository
tag: v2.12.1
Fetching contributors…

Cannot retrieve contributors at this time

file 52 lines (48 sloc) 1.515 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 47 48 49 50 51 52
module RSpec
  module Rails
    if defined?(ActiveRecord)
      module Extensions
        module ActiveRecord
          # Extension to enhance `should have` on AR Model classes
          #
          # @example
          #
          # ModelClass.should have(:no).records
          # ModelClass.should have(1).record
          # ModelClass.should have(n).records
          def records
            find(:all)
          end
          alias :record :records
        end

        class ::ActiveRecord::Base
          extend RSpec::Rails::Extensions::ActiveRecord
        end
      end
    end
  end
end

if defined?(::ActiveModel)
  module ::ActiveModel::Validations
    # Extension to enhance `should have` on AR Model instances. Calls
    # model.valid? in order to prepare the object's errors object. Accepts
    # a :context option to specify the validation context.
    #
    # You can also use this to specify the content of the error messages.
    #
    # @example
    #
    # model.should have(:no).errors_on(:attribute)
    # model.should have(1).error_on(:attribute)
    # model.should have(n).errors_on(:attribute)
    # model.should have(n).errors_on(:attribute, :context => :create)
    #
    # model.errors_on(:attribute).should include("can't be blank")
    def errors_on(attribute, options = {})
      valid_args = [options[:context]].compact
      self.valid?(*valid_args)

      [self.errors[attribute]].flatten.compact
    end

    alias :error_on :errors_on
  end
end
Something went wrong with that request. Please try again.