Module: ActiveModel::Validations

Defined in:
lib/rspec/collection_matchers/rails_extensions.rb

Instance Method Summary collapse

Instance Method Details

#errors_on(attribute, options = {}) ⇒ Object Also known as: error_on

Extension to enhance ‘to 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.

Examples:


expect(model).to have(:no).errors_on(:attribute)
expect(model).to have(1).error_on(:attribute)
expect(model).to have(n).errors_on(:attribute)
expect(model).to have(n).errors_on(:attribute, :context => :create)

expect(model.errors_on(:attribute)).to include("can't be blank")


17
18
19
20
21
22
# File 'lib/rspec/collection_matchers/rails_extensions.rb', line 17

def errors_on(attribute, options = {})
  valid_args = [options[:context]].compact
  self.valid?(*valid_args)

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