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
|
if defined?(::ActiveModel)
module ::ActiveModel::Validations
# 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.
#
# @example
#
# 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")
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
|