File: rails_extensions.rb

package info (click to toggle)
ruby-rspec-collection-matchers 1.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 192 kB
  • sloc: ruby: 948; sh: 7; makefile: 4
file content (26 lines) | stat: -rw-r--r-- 921 bytes parent folder | download | duplicates (2)
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