Sha256: 54ec10454311a5544a6d26a49e33cfdf28940be0ab8c50e64c843fa763d3620b

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

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

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 = {})
    self.valid?(options[:context])
    [self.errors[attribute]].flatten.compact
  end
  alias :error_on :errors_on
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rspec-rails-2.12.0 lib/rspec/rails/extensions/active_record/base.rb